Skip to content

Allow mixing ca-enabled and non-ca-enabled builders #4755

@thufschmitt

Description

@thufschmitt

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.

Metadata

Metadata

Assignees

Labels

ca-derivationsDerivations with content addressed outputs

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions