Hi! I’m late to the party, but I like your thoughtful message.
Josselin Poiret <d...@jpoiret.xyz> skribis: > What I personally think, is that we should rationalize the way we > interact with Guix source: a running Guix should always be able to hold > a reference to its source. The guix package or future equivalent > (ie. good for internal consumption) should always refer to that same > source, but that will also require factoring the daemon (and extensions) > out of the repository, so that the C code doesn't get compiled again on > every unrelated commit. Finally, and I think this is the most > challenging one, we should try to keep the differences between a) and c) > to the minimum, meaning that one way of building has to go. This is a > big change, conceptually and technically, and I understand that this > might be way more complicated that we'd like, but I think this needs to > be done at some point. I definitely agree. I’d summarize things a bit differently: 1. We have two build systems for the same software: the GNU build system and (guix self). 2. We have that crazy ‘guix’ package snapshot, which causes the problems you mentioned. Both contribute to a poor developer experience, but I believe they can be addressed separately. It’s not clear that #1 is much of a problem in practice. Someone who contributes to Guix may have to touch gnu/local.mk, but that rarely goes beyond that. It’s annoying, but it’s not clear to me that it’s a showstopper for newcomers. One thing that would be nice is getting rid of ‘guix-daemon’ and replacing it with a pure Scheme/Guix way of building the C++ code that (guix self) would use. #2 is the main issue to me. There’s an open bug about it¹, which I’d like to address at least in the context of the installer. Thanks, Ludo’. ¹ https://issues.guix.gnu.org/53210