Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib/modules: Test the ability for config to depend on options for compatibility #82802

Merged

Conversation

roberth
Copy link
Member

@roberth roberth commented Mar 17, 2020

Motivation for this change

Prepare for a decentralized future with flakes, where modules will need to adapt to their neighbors, about which those modules can not make too many assumptions. Supporting two releases of NixOS may be impossible at times for flakes if they can't read the options variable.

Additionally, this provides a partial solutions to the expression problem as applied to separately distributed modules.

Feature interactions: where to get the code?

               Core features     Feature A

Core features  nixpkgs/nixos     Flake A

Feature B      Flake B           ???

Without this feature, ??? will always have to be a separate module that users have to turn on manually to make the interaction between Feature A and Feature B not break.

With this feature, ??? can be packaged by either Flake A or Flake B, ensuring that the interaction between the features is always dealt with.

Things done
  • Used this in a real-life separately distributed NixOS module
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@infinisil infinisil merged commit 05cf8a7 into NixOS:master Mar 18, 2020
@infinisil infinisil mentioned this pull request Mar 19, 2020
1 task
@infinisil infinisil added the 6.topic: module system About NixOS module system internals label Mar 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants