Hi Attila, Attila Lendvai <att...@lendvai.name> writes:
>> > channels are a step towards this, but they are not enough in their >> > current form to successfully accommodate for such a setup. an obvious >> > thing that is missing is a way to formally express inter-channel >> > dependencies, including some form of versioning. >> >> >> Do we not have this? The manual documents a mechanism for channel >> dependencies in "(guix) Declaring Channel Dependencies". >> >> I haven't used it, but it looks like the dependencies are declared as >> channels, which can have the usual branch/commit specifications to tie >> them to specific versions. > > good point, thanks! > > i looked briefly at the code just now. it's not trivial, and it seems to > treat the guix channel specially (because i don't need to specify it as a > dependency in my channel's .guix-channel file), and i'm not sure how it > behaves when e.g. two channels depend on the same channel, but pick two > different commits... or all the other convoluted situations. The situation you describe where two channels pick different commits for a channel dependency *cannot* be made to work, at least using Guile. I think what would currently happen is that either: 1) Guix refuses to build (unlikely); 2) Guix just chooses one commit that it then uses to build all dependent channels, contrary to the requirements; 3) Guix does build each channel with the proper dependencies, but the final Guix will have profile collisions. Best, -- Josselin Poiret
signature.asc
Description: PGP signature