Is your feature request related to a problem? Please describe.
Like recursive-nix, ca-derivations is (partially) a build-time feature. This means that (in a distributed build scenario) a remote builder must have the experimental feature enabled to be able to build a ca derivation.
However (unlike recursive-nix), there's currently no way to tell at a distance whether a builder will support it or not, meaning that the scheduler might sent ca derivations to non-ca-enabled builders (which will miserably fail).
Describe the solution you'd like
Like for recursive-nix, make content-addressed derivations require a ca-derivations system feature (implicitly though), and make the ca-derivation experimental feature add this system feature to the default set.
Describe alternatives you've considered
- Do nothing and require users to manually do the
system-feature dance if they need to (possibly adding the requiredSystemFeature at the nixpkgs level, at least as a transitionary measure)
- Abuse the fact that remote builders must be trusted users to force them to use the experimental feature. But that sounds rather bad, and wouldn't work with older Nix.
Is your feature request related to a problem? Please describe.
Like
recursive-nix,ca-derivationsis (partially) a build-time feature. This means that (in a distributed build scenario) a remote builder must have the experimental feature enabled to be able to build a ca derivation.However (unlike
recursive-nix), there's currently no way to tell at a distance whether a builder will support it or not, meaning that the scheduler might sent ca derivations to non-ca-enabled builders (which will miserably fail).Describe the solution you'd like
Like for
recursive-nix, make content-addressed derivations require aca-derivationssystem feature (implicitly though), and make theca-derivationexperimental feature add this system feature to the default set.Describe alternatives you've considered
system-featuredance if they need to (possibly adding therequiredSystemFeatureat the nixpkgs level, at least as a transitionary measure)