[PATCH 0/2] Branching and rebuilding strategy changes

DoneSubmitted by Marius Bakke.
Details
2 participants
  • Ludovic Courtès
  • Marius Bakke
Owner
unassigned
Severity
normal
M
M
Marius Bakke wrote on 12 Jun 2020 16:31
(address . guix-patches@gnu.org)
20200612143104.13986-1-marius@gnu.org
This pull request adds a reduced 'staging' jobset to Cuirass, to
prevent needless rebuilds outside of the freeze cycles.

It also adjusts the documentation to more closely match the current
staging and core-updates practices.

Marius Bakke (2):
ci: Add a 'staging' jobset.
doc: Adjust branching and rebuilding strategy to match reality.

doc/contributing.texi | 8 ++++----
gnu/ci.scm | 15 +++++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)

--
2.26.2
M
M
Marius Bakke wrote on 12 Jun 2020 16:34
[PATCH 1/2] ci: Add a 'staging' jobset.
(address . 41828@debbugs.gnu.org)
20200612143434.14476-1-marius@gnu.org
* gnu/ci.scm (%staging-packages): New variable.
(hydra-jobs): Add case for 'staging and use it.
---
gnu/ci.scm | 15 +++++++++++++++
1 file changed, 15 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/ci.scm b/gnu/ci.scm
index fa67168e22..ee8faffd3b 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -125,6 +126,14 @@ SYSTEM."
         %guile-bootstrap-tarball
         %bootstrap-tarballs))
 
+(define %staging-packages
+  ;; Selected packages intended to be used for the staging jobset in between
+  ;; freeze cycles to avoid building everything all the time, yet still
+  ;; exercise the package graphs enough to catch regressions.
+  (map specification->package
+       '("guix" "emacs" "diffoscope" "network-manager" "syncthing"
+         "alacritty" "git" "git-annex" "krita" "qemu" "grub-hybrid")))
+
 (define (packages-to-cross-build target)
   "Return the list of packages to cross-build for TARGET."
   ;; Don't cross-build the bootstrap tarballs for MinGW.
@@ -499,6 +508,12 @@ Return #f if no such checkout is found."
                                                  package system))
                                   %core-packages)
                              (cross-jobs store system)))
+                    ((staging)
+                     ;; Build a small, but heavy sample only.
+                     (append (map (lambda (package)
+                                    (package-job store (job-name package)
+                                                 package system))
+                                  %staging-packages)))
                     ((hello)
                      ;; Build hello package only.
                      (if (string=? system (%current-system))
-- 
2.26.2
M
M
Marius Bakke wrote on 12 Jun 2020 16:34
[PATCH 2/2] doc: Adjust branching and rebuilding strategy to match reality.
(address . 41828@debbugs.gnu.org)
20200612143434.14476-2-marius@gnu.org
The amount of packages has more than tripled since this section was written.
Adjust the rebuild limits and cycle lengths based on current practices.

* doc/contributing.texi (Submitting Patches): Increase 'staging' rebuild limit
to 1800 packages, and adjust the cycle to six weeks. Increase 'core-updates'
cycle to six months.
---
doc/contributing.texi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

Toggle diff (27 lines)
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 88128e5498..c56f4fd2e9 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -991,16 +991,16 @@ rebuilding induced, commits go to different branches, along these lines:
 @item 300 dependent packages or less
 @code{master} branch (non-disruptive changes).
 
-@item between 300 and 1,200 dependent packages
+@item between 300 and 1,800 dependent packages
 @code{staging} branch (non-disruptive changes).  This branch is intended
-to be merged in @code{master} every 3 weeks or so.  Topical changes
+to be merged in @code{master} every 6 weeks or so.  Topical changes
 (e.g., an update of the GNOME stack) can instead go to a specific branch
 (say, @code{gnome-updates}).
 
-@item more than 1,200 dependent packages
+@item more than 1,800 dependent packages
 @code{core-updates} branch (may include major and potentially disruptive
 changes).  This branch is intended to be merged in @code{master} every
-2.5 months or so.
+6 months or so.
 @end table
 
 All these branches are @uref{@value{SUBSTITUTE-SERVER},
-- 
2.26.2
L
L
Ludovic Courtès wrote on 13 Jun 2020 18:56
Re: [bug#41828] [PATCH 0/2] Branching and rebuilding strategy changes
(name . Marius Bakke)(address . marius@gnu.org)(address . 41828@debbugs.gnu.org)
87mu56zyz6.fsf@gnu.org
Hello!

Marius Bakke <marius@gnu.org> skribis:

Toggle quote (10 lines)
> This pull request adds a reduced 'staging' jobset to Cuirass, to
> prevent needless rebuilds outside of the freeze cycles.
>
> It also adjusts the documentation to more closely match the current
> staging and core-updates practices.
>
> Marius Bakke (2):
> ci: Add a 'staging' jobset.
> doc: Adjust branching and rebuilding strategy to match reality.

Both LGTM.

Thanks,
Ludo’.
M
M
Marius Bakke wrote on 22 Jun 2020 03:17
(address . 41828-done@debbugs.gnu.org)
87o8pbdhlv.fsf@gnu.org
Marius Bakke <marius@gnu.org> writes:

Toggle quote (10 lines)
> This pull request adds a reduced 'staging' jobset to Cuirass, to
> prevent needless rebuilds outside of the freeze cycles.
>
> It also adjusts the documentation to more closely match the current
> staging and core-updates practices.
>
> Marius Bakke (2):
> ci: Add a 'staging' jobset.
> doc: Adjust branching and rebuilding strategy to match reality.

I decided to scrap patch 1/2 in this series. Partly because it would
not work as-is, and partly because I got another idea: instead of the
reduced jobset, we can limit it to x86_64 only. That way we get
substitutes for developers, but avoid the expensive and often needless
rebuilds on other architectures.

I will be doing that from here on in between freeze cycles.

The other patch was pushed in bb9a99e6571c492d30f95c5b51ead6861d1dc098.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl7wBpwACgkQoqBt8qM6
VPqOKAf/YgZd2Fh+NHiOX43dlHyZU7BeMSmwGFMF10yVzjlQws2qKIYVd2bikNxB
Z1Whlvo7qOAViVuR0IL2F4eD7Z5ylHhAUgtLdEQFySOnsSZ9yL3bCrGSwwTkgC0D
4iDBpRyhBU3gtt9I4Mop7YznIeTrxmLehzNRjWSftPB8t+WOnOB2AuS4wGNDykUa
oVwbUf5i6nWkNU5OUax4k2y96WYxz6lj6Uu/NwwZanpfUWCk3SPuO9KT34PeLnqg
Ez2LrMN4xfmTlsxyrVWvKLXeO33PdLIKeJ+IfXK1h4s4cKWeRh9GzLFXBjaExOf+
Ovurv7vj+MRQXn7sBaIG0HSv/uxdkA==
=Ro+G
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 41828@debbugs.gnu.org