serpent-os / tools

The home of moss (system state manager) and boulder (moss format build tool)
https://serpentos.com
137 stars 12 forks source link

Multi-version Support? #114

Open trans opened 11 months ago

trans commented 11 months ago

Does moss support multiple version installs (either Gobo style or Nix style)?

ermo commented 10 months ago

Slots are planned so it becomes possible to have e.g. clang-16 and clang-17 installed side-by-side if need be.

However, in general, the model we're going for is to ensure that a "versioned tree" (think a git ref of a recipe tree) is internally consistent in terms of build-time ABI as in "transitive closure of the ABI graph".

This in turn implies that, for any given "repo-release" our builders will construct build queues until the ABI transitive closure property can be proven to hold for all the available binary artefacts built from the given recipe repo, which in turn implies that that the ABI-related property of "package versions" that you might be used to, will not be interesting to us from a packaging perspective.

If you want/need the sort of system where package versions matter, both Gobo and Nix are better options than Serpent.

As an aside, I contributed a bit to Gobo few years back, so I know what you mean by the version thing in that regard.