Subject: Re: bug#50606: Add support for other formats of Guix channels

From: Ludovic Courtès <[email-masked]>
Date: Thu, 16 Sep 2021 10:17:32 +0200

Hi,

EuAndreh <[email-masked]> skribis:

> As I've described in [0], one can't have a Guix channel served over Git's
> "Dumb HTTP" protocol.  That is caused by libgit's inability to do so [1].
>
> Guix channel authors may want to serve channels:
> - via "Dumb HTTP" Git repositories;
> - via other DVCS like Mercurial, Fossil, BitKeeper;
> - decoupled from the backing versioning tool.
>
> My initial though is that making Guix knowing how to handle channels served as
> tarballs would suffice, and cover all of the above.  Those channels wouldn't
> have the exact same caching and authentication characteristics as channels
> served via Git repositories, but that seems OK.
>
> WDYT?

Channel authentication and downgrade prevention are very much linked to
Git, though they could work with any append-only kind of DVCS.

Now, the implementation is (purposefully) very much Git-only; the format
of channel specs is somewhat Git-only as well.  I understand it can be
frustrating users of other VCSes, but from a maintenance viewpoint,
supporting a single VCS greatly simplifies things.  I also think it’s
beneficial from a user interface standpoint because it allows us to
provide tighter integration than if there was a high-level abstraction
layer.

All in all, I’m not in favor of supporting other version control tools
for channels.

Supporting the “dump HTTP” Git transport would be nice, but as you
write, it’s more of a feature request for libgit2.

Thanks,
Ludo’.