guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: website: gnu-guix-1.4.0-released: Augment.


From: Ludovic Courtès
Subject: 02/02: website: gnu-guix-1.4.0-released: Augment.
Date: Fri, 2 Dec 2022 10:03:04 -0500 (EST)

civodul pushed a commit to branch master
in repository guix-artwork.

commit 7b8b85e5260aecec227ecc7ea392d105cbaa9626
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri Dec 2 16:02:09 2022 +0100

    website: gnu-guix-1.4.0-released: Augment.
    
    * website/drafts/gnu-guix-1.4.0-released.md: Add various things.
---
 website/drafts/gnu-guix-1.4.0-released.md | 176 ++++++++++++++++++++++++++----
 1 file changed, 157 insertions(+), 19 deletions(-)

diff --git a/website/drafts/gnu-guix-1.4.0-released.md 
b/website/drafts/gnu-guix-1.4.0-released.md
index ee67a1b..e4b1d78 100644
--- a/website/drafts/gnu-guix-1.4.0-released.md
+++ b/website/drafts/gnu-guix-1.4.0-released.md
@@ -19,7 +19,7 @@ 
source](https://guix.gnu.org/manual/en/html_node/Requirements.html) or
 binaries](https://guix.gnu.org/manual/en/html_node/Binary-Installation.html).
 Guix users can update by running `guix pull`.
 
-It’s been one year since the [previous
+It’s been 18 months since the [previous
 release](https://guix.gnu.org/en/blog/2021/gnu-guix-1.3.0-released/)!
 That’s a lot of time, reflecting both the fact that, as a *rolling
 release*, users continuously get new features and update by running
@@ -27,8 +27,10 @@ release*, users continuously get new features and update by 
running
 should collectively improve our processes.  During that time, Guix
 received about 29,000 commits by 453 people, which includes important
 new features as we’ll see; the project also [changed
-maintainers](https://guix.gnu.org/en/blog/2022/gnu-guix-maintainer-rotation/)
-and [celebrated its ten-year
+maintainers](https://guix.gnu.org/en/blog/2022/gnu-guix-maintainer-rotation/),
+structured cooperation as
+[teams](https://guix.gnu.org/manual/devel/en/html_node/Teams.html), and
+[celebrated its ten-year
 
anniversary](https://guix.gnu.org/en/blog/2022/wrapping-up-ten-years-of-guix-in-paris/)!
 
 This post provides highlights from this year of hard work—and yes, these
@@ -115,9 +117,29 @@ 
instructions](https://hpc.guix.info/blog/2022/01/tuning-packages-for-a-cpu-micro
 such as AVX-512 on recent AMD/Intel CPUs, which can make a significant
 difference for some workloads such as linear algebra computations.
 
+Since the 1.3.0 release, the project started maintaining [**an
+alternative build
+farm**](https://guix.gnu.org/en/blog/2021/substitutes-now-also-available-from-bordeauxguixgnuorg/)
+at `https://bordeaux.guix.gnu.org`.  It’s independent from the build
+farm at `ci.guix.gnu.org` (donated and hosted by the Max Delbrück Center
+for Molecular Medicine in Berlin, Germany), which has two benefits: it
+lets us [challenge substitutes produced by each
+system](https://guix.gnu.org/manual/en/html_node/Invoking-guix-challenge.html),
+and it provides redundancy should one of these two build farms go down.
+Guix is now configured by default to **fetch substitutes from any of
+these two build farms**.  In addition, a
+[bug](https://issues.guix.gnu.org/57978) was fixed, ensuring that Guix
+gracefully switches to another substitute provider when one goes down.
+
   - TODO: guix deploy --execute
 
-# Better support for application bundles and system images
+# Supporting long-term reproducibility
+
+TODO:
+  - SWH fallback for channels
+  - Disarchive
+
+# Better support for bundles and images
 
 The [`guix pack`
 
command](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-pack.html)
@@ -189,21 +211,137 @@ its bootloader.  Sky’s the limit!
 
 # Nicer packaging experience
 
-  - package style
-  - record sanitizers
-  - tunable packages
-  - (guix platform)
-  - guix import
-  - guix system edit
-  - guix pack -f deb
-  - --list-systems --list-targets etc.
-  - GUIX_PYTHONPATH, pyproject-build-system
+A significant change that packagers will immediately notice is **package
+simplification**, [introduced shortly after
+1.3.0](https://guix.gnu.org/en/blog/2021/the-big-change/).  The most
+visible effect is that package definitions now look clearer:
+
+```scheme
+(package
+  ;; …
+  (inputs (list pkg-config guile-3.0)))  ;👍
+```
+
+… instead of the old baroque style with “input labels”:
+
+```scheme
+(package
+  ;; …
+  (inputs `(("pkg-config" ,pkg-config)   ;👎
+            ("guile" ,guile-3.0))))
+```
+
+The [**new `guix style`
+command**](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-style.html)
+can automatically convert from the “old” style to the “new” style of
+package inputs.  It can also reformat whole Scheme files following the
+stylistic canons _du jour_, which is particularly handy when getting
+started with the language.
+
+That’s just the tip of the iceberg: the new [`modify-inputs`
+macro](https://guix.gnu.org/manual/devel/en/html_node/Defining-Package-Variants.html#index-modify_002dinputs)
+makes package input manipulation easier and clearer, and one can use
+[G-expressions](https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#G_002dExpressions)
+for instance in package phases.  Read our [earlier
+announcement](https://guix.gnu.org/en/blog/2021/the-big-change/) for
+more info.  On top of that, the new _field sanitizer_ mechanism is used
+to validate some fields; for instance, the `license` field is now
+type-checked and the Texinfo syntax of `description` and `synopsis` is
+validated, all without any run-time overhead in common cases.  We hope
+these changes will make it easier to get started with packaging.
+
+The `guix build` command has new flags, `--list-systems` and
+`--list-targets`, to list supported **system types** (which may be
+passed to `--system`) and **cross-compilation target triplets** (for use
+with `--target`).  Under the hood, the new `(guix platform)` module lets
+developers define “platforms”—a combination of CPU architecture and
+operating system—in an abstract way, unifying various bits of
+information previously scattered around.
+
+In addition, packagers can now [mark as
+“tunable”](https://guix.gnu.org/manual/devel/en/html_node/Package-Transformation-Options.html#index-tunable-packages)
+packages that would benefit from **CPU micro-architecture
+optimizations**, enabled with `--tune`.
+
+**Python packaging** has seen important changes.  First, the `python`
+package now honors the `GUIX_PYTHONPATH` environment variable rather
+than `PYTHONPATH`.  That ensures that Python won’t unwillingly pick up
+packages not provided by Guix.  Second, the new
+[`pyproject-build-system`](https://guix.gnu.org/manual/devel/en/html_node/Build-Systems.html#index-pyproject_002dbuild_002dsystem)
+implements [PEP 517](https://peps.python.org/pep-0517/).  It complements
+the existing `python-build-system`, and both may eventually be merged
+together.
+
+What’s great with packaging is when it comes for free.  The [**`guix
+import`
+command**](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-import.html)
+gained support for several upstream package repositories: `minetest`
+(extensions of the Minetest game), `elm` (the Elm programming language),
+`egg` (for CHICKEN Scheme), and `hexpm` (for Erlang and Elixir
+packages).  Existing importers have seen various improvements.  The
+[**`guix refresh`
+command**](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-refresh.html)
+to automatically update package definitions has a new `generic-git`
+updater.
 
 # Stronger distribution
 
-  - ld.so cache
-  - installer fixes and crash report
-  - GNU Shepherd 0.9
-  - GNOME 42
-  - Qt 6
-  - packages.guix.gnu.org
+The distribution itself has seen lots of changes.  First, the **Guix
+System installer** received a number of bug fixes and it now includes a
+new mechanism that allows users to automatically report useful debugging
+information in case of a crash.  This will help developers address bugs
+that occur with unusual configurations.
+
+**Application startup has been reduced** thanks to [a new
+per-application dynamic linker
+cache](https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with-a-loader-cache/)
+that drastically reduces the number of `stat` and `open` calls due to
+shared library lookup (we’re glad it
+[inspired](https://github.com/fzakaria/shrinkwrap)
+[others](https://fzakaria.com/2022/09/12/making-runpath-redundant-for-nix.html)).
+
+Guix System is now using [**the GNU Shepherd
+0.9**](https://www.gnu.org/software/shepherd), which addresses
+shortcomings, improves logging, and adds features such as systemd-style
+service activation and inetd-style service startup.  Speaking of
+services, the [**new `guix system edit`
+sub-command**](https://guix.gnu.org/manual/en/html_node/Invoking-guix-system.html)
+provides an additional way for users to inspect services, completing
+`guix system search` and `guix system extension-graph`.
+
+TODO: New services.
+
+Among the many noteworthy package upgrades and addition, **GNOME 42** is
+now available.  KDE is not there yet but tens of KDE packages have been
+added so we’re getting closer; Qt 6 is also available.
+TODO: More about new packages.
+
+On top of that, the Web site features a [**new package
+browser**](https://packages.guix.gnu.org)—at last!  Among other things,
+the package browse provides stable package URLs like
+`https://packages.guix.gnu.org/packages/PACKAGE`.
+
+# Try it!
+
+There are several ways to get started using Guix:
+
+  1. The [installation script](https://guix.gnu.org/install.sh) lets you
+     quickly install Guix [on top of another GNU/Linux
+     
distribution](https://guix.gnu.org/manual/en/html_node/Binary-Installation.html).
+
+  2. The [Guix System virtual machine
+     image](https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html)
+     can be used with QEMU and is a simple way to discover Guix System
+     without touching your system.
+
+  3. You can [install Guix System as a standalone
+     
distribution](https://guix.gnu.org/manual/en/html_node/System-Installation.html).
+     The
+     
[installer](https://guix.gnu.org/en/videos/2020/system-graphical-installer/)
+     will guide you through the initial configuration steps.
+
+To review all the installation options at your disposal, consult [the
+download page](https://guix.gnu.org/en/download/) and don't hesitate
+to [get in touch with us](https://guix.gnu.org/en/contact/).
+
+Enjoy!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]