On Sun, Jan 08, 2023 at 10:32:36PM +0000, John Kehayias wrote:
> Heartily agree here. This has come up a few times on #guix and generally with 
> support (don't let me speak for everyone though). I think the idea of smaller 
> and more frequent feature branches is a great idea: less code changes coming 
> to master to review at once (compared to big core-updates merges), 
> substitutes and closer to master to be easier for people to pull the branch 
> and test, and some areas despite the number of builds would work nicely as a 
> branch than just pushed (and lingering) into core-updates for much later.

I agree with all your points. We used to work this way back in the day
when there weren't very many Guix packages. There was always a
'core-updates' job, but if it was limited to packages that truly are
"core". Then, for several years, the build farm was underpowered
relative to the number of packages and it became impractical. I think we
are past that now.

I've attached a couple patches to get started but I need help getting
them to work.

There is 'etc/go-manifest.scm', which does work with `guix package -m
etc/go-manifest.scm --dry-run`.

And there is a diff for 'build-aux/cuirass/evaluate.scm', so that I can
test it with `make cuirass-jobs`.

But, `make cuirass-jobs` crashes with this manifest and I don't know
why:

------
$ make cuirass-jobs
Compiling Scheme modules...
Compiling Scheme modules...
Compiling Scheme modules...
Compiling Scheme modules...
Compiling Scheme modules...
rm -rf "cuirass-jobs"
  GEN      cuirass-jobs
Computing Guix derivation for 'x86_64-linux'... /
In thread:
uncaught throw to %exception: (#<&inferior-exception arguments: (wrong-type-arg 
"primitive-load" "Wrong type argument in position ~A (expecting ~A): ~S" (1 
"string" #f) (#f)) inferior: #<inferior pipe (0 1 1) 7f28f3ffd780> stack: ((#f 
("ice-9/boot-9.scm" 1779 13)) (raise-exception ("ice-9/boot-9.scm" 1682 16)) 
(raise-exception ("ice-9/boot-9.scm" 1684 16)) (primitive-load (#f #f #f)) 
(save-module-excursion ("ice-9/boot-9.scm" 2835 4)) (#f (#f #f #f)) (map1 
("srfi/srfi-1.scm" 585 17)) (append-map ("srfi/srfi-1.scm" 672 15)) (#f 
("gnu/ci.scm" 449 8)) (map1 ("srfi/srfi-1.scm" 585 17)) (append-map 
("srfi/srfi-1.scm" 672 15)) (cuirass-jobs ("gnu/ci.scm" 489 4)) (#f 
("ice-9/eval.scm" 158 9)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(call-with-prompt ("ice-9/boot-9.scm" 723 2)) (#f (#f #f #f)) (#f 
("guix/repl.scm" 98 21)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(with-exception-handler ("ice-9/boot-9.scm" 1746 15)) (#f ("guix/repl.scm" 125 
7)))>)
In thread:
uncaught throw to %exception: (#<&inferior-exception arguments: (wrong-type-arg 
"primitive-load" "Wrong type argument in position ~A (expecting ~A): ~S" (1 
"string" #f) (#f)) inferior: #<inferior pipe (0 1 1) 7f28f3ffd740> stack: ((#f 
("ice-9/boot-9.scm" 1779 13)) (raise-exception ("ice-9/boot-9.scm" 1682 16)) 
(raise-exception ("ice-9/boot-9.scm" 1684 16)) (primitive-load (#f #f #f)) 
(save-module-excursion ("ice-9/boot-9.scm" 2835 4)) (#f (#f #f #f)) (map1 
("srfi/srfi-1.scm" 585 17)) (append-map ("srfi/srfi-1.scm" 672 15)) (#f 
("gnu/ci.scm" 449 8)) (map1 ("srfi/srfi-1.scm" 585 17)) (append-map 
("srfi/srfi-1.scm" 672 15)) (cuirass-jobs ("gnu/ci.scm" 489 4)) (#f 
("ice-9/eval.scm" 158 9)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(call-with-prompt ("ice-9/boot-9.scm" 723 2)) (#f (#f #f #f)) (#f 
("guix/repl.scm" 98 21)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(with-exception-handler ("ice-9/boot-9.scm" 1746 15)) (#f ("guix/repl.scm" 125 
7)))>)
In thread:
uncaught throw to %exception: (#<&inferior-exception arguments: (wrong-type-arg 
"primitive-load" "Wrong type argument in position ~A (expecting ~A): ~S" (1 
"string" #f) (#f)) inferior: #<inferior pipe (0 1 1) 7f28f3ffd7c0> stack: ((#f 
("ice-9/boot-9.scm" 1779 13)) (raise-exception ("ice-9/boot-9.scm" 1682 16)) 
(raise-exception ("ice-9/boot-9.scm" 1684 16)) (primitive-load (#f #f #f)) 
(save-module-excursion ("ice-9/boot-9.scm" 2835 4)) (#f (#f #f #f)) (map1 
("srfi/srfi-1.scm" 585 17)) (append-map ("srfi/srfi-1.scm" 672 15)) (#f 
("gnu/ci.scm" 449 8)) (map1 ("srfi/srfi-1.scm" 585 17)) (append-map 
("srfi/srfi-1.scm" 672 15)) (cuirass-jobs ("gnu/ci.scm" 489 4)) (#f 
("ice-9/eval.scm" 158 9)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(call-with-prompt ("ice-9/boot-9.scm" 723 2)) (#f (#f #f #f)) (#f 
("guix/repl.scm" 98 21)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(with-exception-handler ("ice-9/boot-9.scm" 1746 15)) (#f ("guix/repl.scm" 125 
7)))>)
In thread:
uncaught throw to %exception: (#<&inferior-exception arguments: (wrong-type-arg 
"primitive-load" "Wrong type argument in position ~A (expecting ~A): ~S" (1 
"string" #f) (#f)) inferior: #<inferior pipe (0 1 1) 7f28f3ffd9c0> stack: ((#f 
("ice-9/boot-9.scm" 1779 13)) (raise-exception ("ice-9/boot-9.scm" 1682 16)) 
(raise-exception ("ice-9/boot-9.scm" 1684 16)) (primitive-load (#f #f #f)) 
(save-module-excursion ("ice-9/boot-9.scm" 2835 4)) (#f (#f #f #f)) (map1 
("srfi/srfi-1.scm" 585 17)) (append-map ("srfi/srfi-1.scm" 672 15)) (#f 
("gnu/ci.scm" 449 8)) (map1 ("srfi/srfi-1.scm" 585 17)) (append-map 
("srfi/srfi-1.scm" 672 15)) (cuirass-jobs ("gnu/ci.scm" 489 4)) (#f 
("ice-9/eval.scm" 158 9)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(call-with-prompt ("ice-9/boot-9.scm" 723 2)) (#f (#f #f #f)) (#f 
("guix/repl.scm" 98 21)) (with-exception-handler ("ice-9/boot-9.scm" 1751 10)) 
(with-exception-handler ("ice-9/boot-9.scm" 1746 15)) (#f ("guix/repl.scm" 125 
7)))>)
------
diff --git a/build-aux/cuirass/evaluate.scm b/build-aux/cuirass/evaluate.scm
index 7ae5c266d1..92743508df 100644
--- a/build-aux/cuirass/evaluate.scm
+++ b/build-aux/cuirass/evaluate.scm
@@ -96,7 +96,9 @@ (define derivation
                             inferior store
                             `(lambda (store)
                                (cuirass-jobs store
-                                             '((subset . all)
+                                             '((subset
+                                                . (manifests
+                                                   "etc/go-manifest.scm"))
                                                (systems . ,(list system))
                                                (channels . ,channels))))))
                           (file
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Leo Famulari <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(use-modules (guix packages)
             (guix profiles)
             (gnu packages)
             (guix build-system go))

(manifest
  (map package->manifest-entry
       (fold-packages
         (lambda (package result)
           (if (or (eq? (package-build-system package) go-build-system)
                   (equal? (package-name package) "go"))
             (cons package result)
             result))
         '())))

Reply via email to