Hi Ludo’,
Il 10/06/26 22:50, Ludovic Courtès ha scritto:
I guess I’m just describing the advantages of a monorepo. :-)
Maybe the solution for now is to keep Guix as the source of these and to
periodically copy to these external libraries with minor modifications
like changing the module name? (Sorta like how Gnulib does with glibc
code.)
That may sound boring but it would still be an improvement over the
status quo.
It looks ok, it would be cleaner to have a single source to maintain but
if the carry over can be automatized (I believe it could), it shouldn't
be a lot of effort. Why changing the module name though? I suppose if
the README states that the library is simply an export of sorts from
Guix mainline it wouldn't happen a lot that users would find themselves
to depend both on Guix and the extracted library (?).
4. I noticed that the current test-driver.scm from Guix mainline
(which I copied in the guix-records tree) uses features available only
in Guile 3.0.11 (notably test-match-all).
According to ‘configure.ac’ Guix requires 3.0.9+ so this (using
3.0.11-only features) is a bug.
I didn't realize it, I opened [0].
Should we make sure that these extracted libraries build correctly
only with the latest Guile version or should we strive for them to be
compatible also with older versions (including 2.2 and 2.0)?
That’s another tricky part. For (guix records), we can require 3.0.9+
because that’s what Guix requires.
But (guix build utils) itself has to work with 2.0 (!) because that’s
what ‘guile-bootstrap’ is on x86, and it’s also used for some of the
tests. If it were extracted, it would make sense to drop 2.0 (and even
2.2), but then it would become a problem for Guix.
It seems more complicated than I thought, but I am still motivated to do
it. If there are no objections I would like to migrate the repository I
created under guix organization. Of course if anyone reading this email
has any feedback on changes I should do (like a new module name) before
the migration, let me know either here or via a Codeberg issue. I am
still puzzled by how access control works for repos other than
guix/guix. Can anyone from the Codeberg team help me with this?
Thanks a lot,
cheers,
giacomo
[0]: https://codeberg.org/guix/guix/issues/9319