Unverified Commit 8df1ea32 authored by Robert Hensing's avatar Robert Hensing Committed by GitHub
Browse files

Merge pull request #207958 from hercules-ci/nixos-only-warn-stateVersion-when-used-lite

nixos/version: Only warn about unset stateVersion if used (lite)
parents 9aa77715 91050a9d
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -89,6 +89,12 @@ in

    stateVersion = mkOption {
      type = types.str;
      # TODO Remove this and drop the default of the option so people are forced to set it.
      # Doing this also means fixing the comment in nixos/modules/testing/test-instrumentation.nix
      apply = v:
        lib.warnIf (options.system.stateVersion.highestPrio == (lib.mkOptionDefault { }).priority)
          "system.stateVersion is not set, defaulting to ${v}. Read why this matters on https://nixos.org/manual/nixos/stable/options.html#opt-system.stateVersion."
          v;
      default = cfg.release;
      defaultText = literalExpression "config.${opt.release}";
      description = lib.mdDoc ''
@@ -149,14 +155,6 @@ in
      "os-release".text = attrsToText osReleaseContents;
    };

    # We have to use `warnings` because when warning in the default of the option
    # the warning would also be shown when building the manual since the manual
    # has to evaluate the default.
    #
    # TODO Remove this and drop the default of the option so people are forced to set it.
    # Doing this also means fixing the comment in nixos/modules/testing/test-instrumentation.nix
    warnings = lib.optional (options.system.stateVersion.highestPrio == (lib.mkOptionDefault { }).priority)
      "system.stateVersion is not set, defaulting to ${config.system.stateVersion}. Read why this matters on https://nixos.org/manual/nixos/stable/options.html#opt-system.stateVersion.";
  };

  # uses version info nixpkgs, which requires a full nixpkgs path
+19 −1
Original line number Diff line number Diff line
@@ -11,6 +11,17 @@ in

{ imports = [
    ../virtualisation/qemu-vm.nix

    # Avoid a dependency on stateVersion
    {
      disabledModules = [
        ../virtualisation/nixos-containers.nix
        ../services/x11/desktop-managers/xterm.nix
      ];
      config = {
      };
      options.boot.isContainer = lib.mkOption { default = false; internal = true; };
    }
  ];

  # The builder is not intended to be used interactively
@@ -97,7 +108,14 @@ in
    # To prevent gratuitous rebuilds on each change to Nixpkgs
    nixos.revision = null;

    stateVersion = "22.05";
    stateVersion = lib.mkDefault (throw ''
      The macOS linux builder should not need a stateVersion to be set, but a module
      has accessed stateVersion nonetheless.
      Please inspect the trace of the following command to figure out which module
      has a dependency on stateVersion.

        nix-instantiate --attr darwin.builder --show-trace
    '');
  };

  users.users."${user}"= {
+6 −0
Original line number Diff line number Diff line
@@ -507,6 +507,12 @@ in {
                sqlite3 = null;
                psycopg2 = "matrix-synapse";
              }.${cfg.settings.database.name};
              defaultText = lib.literalExpression ''
                {
                  sqlite3 = null;
                  psycopg2 = "matrix-synapse";
                }.''${cfg.settings.database.name};
              '';
              description = lib.mdDoc ''
                Username to connect with psycopg2, set to null
                when using sqlite3.