Hello! Here’s a series of improvements that I think we should make in ‘guix pull’:
• Use Git instead of downloading a whole snapshot every time. The Git checkout would be kept in ~/.cache/guix/pull/checkouts, say. A related question is whether to use Git itself, which is pretty big per ‘guix size’, or to use some libgit2 bindings such as <https://git.dthompson.us/guile-git.git> (the closure of libgit2 is 435 MiB; that of Git is 761 MiB.) • Build & install not only Scheme code, but also locales and the Info manual. • Have a “channel” mechanism, similar to ‘nix-channel’, that would allow users to have several Guix variants available in parallel instead of just “latest”. Could work like this: guix channel add latest git://git.sv.gnu.org/guix.git master guix channel add stable git://git.sv.gnu.org/guix.git stable guix channel pull latest guix channel set latest # here i see the latest versions of everything guix channel set stable # and here everything is old but super stable ;-) All 3 items can be done separately, I think. Any takers? :-) Ludo’. PS: I do not mention the issue of authenticating code here, which is obviously very important and deserves to be treated separately. Related to that is the question of making sure that what you think is the latest version really is the latest version. We need someone to sign certificates saying what the latest commit ID of a repo is. See the “The Update Framework” paper!