guix-commits
[Top][All Lists]
Advanced

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

branch master updated: website: Add draft for the 1.4.0 release notes.


From: Ludovic Courtès
Subject: branch master updated: website: Add draft for the 1.4.0 release notes.
Date: Mon, 28 Nov 2022 12:03:24 -0500

This is an automated email from the git hooks/post-receive script.

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

The following commit(s) were added to refs/heads/master by this push:
     new da61ff8  website: Add draft for the 1.4.0 release notes.
da61ff8 is described below

commit da61ff8346d2dab90ee4480aee73552db8359379
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon Nov 28 18:02:55 2022 +0100

    website: Add draft for the 1.4.0 release notes.
    
    * website/drafts/gnu-guix-1.4.0-released.md: New file.
---
 website/drafts/gnu-guix-1.4.0-released.md | 209 ++++++++++++++++++++++++++++++
 1 file changed, 209 insertions(+)

diff --git a/website/drafts/gnu-guix-1.4.0-released.md 
b/website/drafts/gnu-guix-1.4.0-released.md
new file mode 100644
index 0000000..aa72540
--- /dev/null
+++ b/website/drafts/gnu-guix-1.4.0-released.md
@@ -0,0 +1,209 @@
+title: GNU Guix 1.4.0 released
+date: 2022-12-10 22:00:00
+author: Ludovic Courtès
+slug: gnu-guix-1.4.0-released
+tags: Releases
+---
+# **DRAFT**
+
+We are pleased to announce the release of GNU Guix version 1.4.0!
+
+The release comes with [ISO-9660 installation
+images](https://guix.gnu.org/manual/en/html_node/System-Installation.html),
+a [virtual machine
+image](https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html),
+and with tarballs to install the package manager on top of your
+GNU/Linux distro, either [from
+source](https://guix.gnu.org/manual/en/html_node/Requirements.html) or
+[from
+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
+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
+`guix pull`; but let’s face it, it also shows an area where we can and
+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
+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
+are probably the longest release notes of Guix’s history!
+
+# Improved software environment management
+
+One area where Guix shines is the management of **software
+environments**.  The `guix environment` command was designed for that
+but it suffered from a clumsy interface.  It is [now superseded by `guix
+shell`](https://guix.gnu.org/en/blog/2021/from-guix-environment-to-guix-shell/),
+though we are committed to keeping `guix environment` until at least May
+1st, 2023.  `guix shell` is a tool that’s interesting to developers, but
+it’s also a useful tool when you’re willing to try out software without
+committing it to your profile with `guix install`.  Let’s say you want
+to play [SuperTuxKart](https://supertuxkart.net) but would rather not
+have it in your profile because, hey, it’s a professional laptop; here’s
+how you would launch it, fetching it first if necessary:
+
+```
+guix shell supertuxkart -- supertuxkart
+```
+
+In addition to providing a simpler interface, `guix shell` significantly
+improves performance through caching.  It also simplifies developer
+workflows by automatically recognizing `guix.scm` and `manifest.scm`
+files present in a directory: drop one of these in your project and
+other developers can get started hacking just by running `guix shell`,
+without arguments.  [Read more about `guix shell` in the
+manual](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-shell.html).
+
+Another `guix shell` innovation is optional **emulation of the
+filesystem hierarchy standard (FHS)**.  The
+[FHS](https://refspecs.linuxfoundation.org/fhs.shtml) specifies
+locations for different file categories—`/bin` for essential command
+binaries, `/lib` for libraries, and so on.  Guix with its
+[store](https://guix.gnu.org/manual/devel/en/html_node/The-Store.html)
+does not adhere to the FHS, which prevents users from running programs
+that assume FHS adherence.  The new `--emulate-fhs` (or `-F`) flag of
+`guix shell`, combined with `--container` (`-C`), instructs it to create
+a container environment that follows the FHS.  This is best illustrated
+with this example, where the `ls` command of the `coreutils` package
+appears right under `/bin`, as if we were on an FHS system like Debian:
+
+```
+$ guix shell -CF coreutils -- /bin/ls -1p /
+bin/
+dev/
+etc/
+gnu/
+home/
+lib/
+lib64
+proc/
+sbin/
+sys/
+tmp/
+usr/
+```
+
+Another big new feature is **Guix Home**.  In a nutshell, Home brings
+the declarative nature of Guix System to your *home environment*: it
+lets you declare all the aspects of your home environments—“dot files”,
+services, and packages—and can [instantiate that environment, in your
+actual `$HOME` or in a
+container](https://guix.gnu.org/en/blog/2022/keeping-ones-home-tidy/).
+
+If you’re already maintaining your dot files under version control, or
+if you would like to keep things under control so you don’t have to
+spend days or weeks configuring again next time you switch laptops, this
+is the tool you need.  Check out [this excellent
+introduction](https://10years.guix.gnu.org/video/an-introduction-to-guix-home/)
+that David Wilson gave at the Ten Years celebration, and [read more
+about Guix Home in the
+manual](https://guix.gnu.org/manual/devel/en/html_node/Declaring-the-Home-Environment.html).
+
+[**Package transformation
+options**](https://guix.gnu.org/manual/devel/en/html_node/Package-Transformation-Options.html)
+give users fine control over the way packages are built.  The new
+`--tune` option enables tuning of packages **for a specific CPU
+micro-architecture**; this [enables the use of the newest
+single-instruction multiple-data (SIMD)
+instructions](https://hpc.guix.info/blog/2022/01/tuning-packages-for-a-cpu-micro-architecture/),
+such as AVX-512 on recent AMD/Intel CPUs, which can make a significant
+different for some workloads such as linear algebra computations.
+
+  - TODO: guix deploy --execute
+
+# Better support for application bundles and system images
+
+The [`guix pack`
+command](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-pack.html)
+to create “**application bundles**”—standalone application images—has
+been extended: `guix pack -f deb` creates a standalone `.deb` package
+that can be installed on Debian and derivative distros; the new
+`--symlink` flag makes it create symlinks within the image.
+
+At the system level, the [**new `guix system image`
+command**](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-system.html#index-image_002c-creating-disk-images)
+supersedes previously existing `guix system` sub-commands, providing a
+single entry point to build images of all types: raw disk images, QCOW2
+virtual machine images, ISO8660 CD/DVD images, Docker images, and even
+[images for Microsoft’s Windows Subsystem for Linux
+(WSL2)](https://othacehe.org/wsl-images-for-guix-system.html).  This
+comes with a [high-level
+interface](https://guix.gnu.org/manual/devel/en/html_node/System-Images.html)
+that lets you declare the type of image you want: the storage format,
+partitions, and of course the operating system for that image.  To
+facilitate its use, predefined image types are provided:
+
+```
+$ guix system image --list-image-types
+The available image types are:
+
+   - rock64-raw
+   - pinebook-pro-raw
+   - pine64-raw
+   - novena-raw
+   - hurd-qcow2
+   - hurd-raw
+   - raw-with-offset
+   - iso9660
+   - efi32-raw
+   - wsl2
+   - uncompressed-iso9660
+   - efi-raw
+   - docker
+   - qcow2
+   - tarball
+```
+
+That includes [for
+example](https://guix.gnu.org/manual/devel/en/html_node/Image-Modules.html)
+an image type for the Pine64 machines and for the GNU/Hurd operating
+system.  For example, this is how you’d create an QCOW2 virtual machine
+image suitable for QEMU:
+
+```
+guix system image -t qcow2 my-operating-system.scm
+```
+
+… where `my-operating-system.scm` contains an [operating system
+declaration](https://guix.gnu.org/manual/devel/en/html_node/Using-the-Configuration-System.html).
+
+Likewise, here’s how you’d create, on your x86_64 machine, an image for
+your Pine64 board, ready to be transferred to an SD card or similar
+storage device that the board will boot from:
+
+```
+guix system image -t pine64-raw my-operating-system.scm
+```
+
+The `pine64-raw` image type specifies that software in the image is
+actually *cross-compiled* to `aarch64-linux-gnu`—that is, GNU/Linux on
+an AArch64 CPU, with the appropriate [U-Boot
+variant](https://packages.guix.gnu.org/packages/u-boot-pine64-lts) as
+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
+
+# Stronger distribution
+
+  - ld.so cache
+  - installer fixes and crash report
+  - GNU Shepherd 0.9
+  - GNOME 42
+  - Qt 6
+  - packages.guix.gnu.org



reply via email to

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