Nix Packages collection & NixOS
Go to file
aszlig 9bfd864c59
Merge reording asserts in NixOS eval (#47293)
Changes the evaluation order in that it evaluates assertions before
warnings, so that eg. the following would work:

  { config, lib, ... }:

  {
    options.foo = lib.mkOption {
      type = lib.types.bool;
      default = true;
      description = "...";
    };

    options.bar = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = "...";
    };

    config = lib.mkMerge [
      (lib.mkIf config.bar {
        system.build.bar = "foobar";
      })
      (lib.mkIf config.foo {
        assertions = lib.singleton {
          assertion = config.bar;
          message = "Bar needs to be enabled";
        };
        systemd.services.foo = {
          description = "Foo";
          serviceConfig.ExecStart = config.system.build.bar;
        };
      })
    ];
  }

This is because the systemd module includes definitions for warnings
that would trigger evaluation of the config.system.build.bar definition.

The original pull request references a breakage due to the following:

  {
    services.nixosManual.enable = false;
    services.nixosManual.showManual = true;
  }

However, changing the eval order between asserts and warnings clearly is
a corner case here and it only happens because of the aforementioned
usage of warnings in the systemd module and needs more discussion.

Nevertheless, this is still useful because it lowers the evaluation time
whenever an assertion is hit, which is a hard failure anyway.
2018-09-26 01:18:41 +02:00
.github treewide: remove mailing list references 2018-08-23 09:24:44 -07:00
doc Merge pull request #47238 from obsidiansystems/overrideScope-order 2018-09-24 18:04:18 -04:00
lib Merge pull request #47238 from obsidiansystems/overrideScope-order 2018-09-24 18:04:18 -04:00
maintainers Merge pull request #47112 from Avaq/add/twa 2018-09-24 21:41:37 +01:00
nixos Merge reording asserts in NixOS eval (#47293) 2018-09-26 01:18:41 +02:00
pkgs Merge pull request #47358 from volth/perl-dev 2018-09-26 00:20:07 +02:00
.dir-locals.el .dir-locals.el: init 2018-07-06 12:48:43 -04:00
.editorconfig Revert ".version: remove final newline" 2018-04-28 14:23:13 +02:00
.gitattributes gitattributes: disable merge=union in all-packages 2018-03-27 11:03:03 -05:00
.gitignore kde5: consolidate packages into desktops/kde-5 2016-03-01 10:36:00 -06:00
.version 18.09 -> 19.03 2018-09-02 16:45:00 -04:00
COPYING 2018 will be the year of NixOS 2018-01-04 17:59:52 -05:00
default.nix Reference a local copy of the release notes in the 'version too old' warning, plus a redirect to the support links 2018-08-30 09:05:57 -04:00
README.md treewide: remove mailing list references 2018-08-23 09:24:44 -07:00

logo

Code Triagers Badge

Nixpkgs is a collection of packages for the Nix package manager. It is periodically built and tested by the Hydra build daemon as so-called channels. To get channel information via git, add nixpkgs-channels as a remote:

% git remote add channels https://github.com/NixOS/nixpkgs-channels.git

For stability and maximum binary package support, it is recommended to maintain custom changes on top of one of the channels, e.g. nixos-18.03 for the latest release and nixos-unstable for the latest successful build of master:

% git remote update channels
% git rebase channels/nixos-18.03

For pull-requests, please rebase onto nixpkgs master.

NixOS Linux distribution source code is located inside nixos/ folder.

Communication: