Subject: [bug#74654] [PATCH 0/5] Optimize 'all-packages'; add ungrafting manifest

From: Ludovic Courtès <[email-masked]>
Date: Mon, 2 Dec 2024 17:51:53 +0100

Hello Guix!

This is a followup to <https://issues.guix.gnu.org/74542>:

  • Optimizing ‘all-packages’ significantly (speeds up
    ‘guix build -P’ and ‘guix refresh -l’);

  • Moving manifests to ‘etc/manifests’ (we’ll have to
    update Cuirass specs that refer to these files);

  • Adding an “ungrafting” package that rebuilds everything
    without grafts, just like what we’d do manually.

The goal is to have that ungrafting manifest under CI, such
that anytime the corresponding jobset is green, we can ungraft
everything with the guarantee that binaries are available.

Thoughts?

Ludo’.

Ludovic Courtès (5):
  etc: Move manifests to a separate directory.
  packages: Optimize ‘all-packages’.
  build-system/cargo: Simplify ‘crate-closure’.
  guix build: Last argument of ‘dependents’ is optional.
  maint: Add ungrafting manifest.

 Makefile.am                                   | 21 ++++----
 .../disarchive.scm}                           |  2 +-
 etc/{hurd-manifest.scm => manifests/hurd.scm} |  0
 .../kernels.scm}                              |  0
 .../release.scm}                              |  0
 .../source.scm}                               |  0
 etc/{ => manifests}/system-tests.scm          |  0
 .../time-travel.scm}                          |  0
 etc/manifests/ungraft.scm                     | 49 +++++++++++++++++++
 .../upgrade.scm}                              |  0
 gnu/packages.scm                              | 30 +++++++-----
 guix/build-system/cargo.scm                   | 12 ++---
 guix/scripts/build.scm                        |  4 +-
 13 files changed, 87 insertions(+), 31 deletions(-)
 rename etc/{disarchive-manifest.scm => manifests/disarchive.scm} (99%)
 rename etc/{hurd-manifest.scm => manifests/hurd.scm} (100%)
 rename etc/{kernels-manifest.scm => manifests/kernels.scm} (100%)
 rename etc/{release-manifest.scm => manifests/release.scm} (100%)
 rename etc/{source-manifest.scm => manifests/source.scm} (100%)
 rename etc/{ => manifests}/system-tests.scm (100%)
 rename etc/{time-travel-manifest.scm => manifests/time-travel.scm} (100%)
 create mode 100644 etc/manifests/ungraft.scm
 rename etc/{upgrade-manifest.scm => manifests/upgrade.scm} (100%)

base-commit: 522732d5c15e44fc9e061f36a41f7129edfee66f
-- 
2.46.0