Merge pull request #163451 from hercules-ci/stop-premature-warnings
Stop premature warnings, including `nix.settings` migration
This commit is contained in:
commit
8ce16fcf62
|
@ -125,7 +125,7 @@ Reviewing process:
|
||||||
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated).
|
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated).
|
||||||
- Description, default and example should be provided.
|
- Description, default and example should be provided.
|
||||||
- Ensure that option changes are backward compatible.
|
- Ensure that option changes are backward compatible.
|
||||||
- `mkRenamedOptionModule` and `mkAliasOptionModule` functions provide way to make option changes backward compatible.
|
- `mkRenamedOptionModuleWith` provides a way to make option changes backward compatible.
|
||||||
- Ensure that removed options are declared with `mkRemovedOptionModule`
|
- Ensure that removed options are declared with `mkRemovedOptionModule`
|
||||||
- Ensure that changes that are not backward compatible are mentioned in release notes.
|
- Ensure that changes that are not backward compatible are mentioned in release notes.
|
||||||
- Ensure that documentations affected by the change is updated.
|
- Ensure that documentations affected by the change is updated.
|
||||||
|
|
|
@ -67,7 +67,7 @@ let
|
||||||
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
|
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
|
||||||
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
|
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
|
||||||
importJSON importTOML warn warnIf throwIfNot checkListOfEnum
|
importJSON importTOML warn warnIf throwIfNot checkListOfEnum
|
||||||
info showWarnings nixpkgsVersion version
|
info showWarnings nixpkgsVersion version isInOldestRelease
|
||||||
mod compare splitByAndCompare functionArgs setFunctionArgs isFunction
|
mod compare splitByAndCompare functionArgs setFunctionArgs isFunction
|
||||||
toHexString toBaseDigits;
|
toHexString toBaseDigits;
|
||||||
inherit (self.fixedPoints) fix fix' converge extends composeExtensions
|
inherit (self.fixedPoints) fix fix' converge extends composeExtensions
|
||||||
|
@ -120,7 +120,8 @@ let
|
||||||
mkOptionDefault mkDefault mkImageMediaOverride mkForce mkVMOverride
|
mkOptionDefault mkDefault mkImageMediaOverride mkForce mkVMOverride
|
||||||
mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
|
mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
|
||||||
mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
|
mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
|
||||||
mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule
|
mkRenamedOptionModule mkRenamedOptionModuleWith
|
||||||
|
mkMergedOptionModule mkChangedOptionModule
|
||||||
mkAliasOptionModule mkDerivedConfig doRename;
|
mkAliasOptionModule mkDerivedConfig doRename;
|
||||||
inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions
|
inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions
|
||||||
mergeDefaultOption mergeOneOption mergeEqualOption mergeUniqueOption
|
mergeDefaultOption mergeOneOption mergeEqualOption mergeUniqueOption
|
||||||
|
|
|
@ -954,6 +954,26 @@ rec {
|
||||||
use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
|
use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkRenamedOptionModuleWith = {
|
||||||
|
/* Old option path as list of strings. */
|
||||||
|
from,
|
||||||
|
/* New option path as list of strings. */
|
||||||
|
to,
|
||||||
|
|
||||||
|
/*
|
||||||
|
Release number of the first release that contains the rename, ignoring backports.
|
||||||
|
Set it to the upcoming release, matching the nixpkgs/.version file.
|
||||||
|
*/
|
||||||
|
sinceRelease,
|
||||||
|
|
||||||
|
}: doRename {
|
||||||
|
inherit from to;
|
||||||
|
visible = false;
|
||||||
|
warn = lib.isInOldestRelease sinceRelease;
|
||||||
|
use = lib.warnIf (lib.isInOldestRelease sinceRelease)
|
||||||
|
"Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
|
||||||
|
};
|
||||||
|
|
||||||
/* Return a module that causes a warning to be shown if any of the "from"
|
/* Return a module that causes a warning to be shown if any of the "from"
|
||||||
option is defined; the defined values can be used in the "mergeFn" to set
|
option is defined; the defined values can be used in the "mergeFn" to set
|
||||||
the "to" value.
|
the "to" value.
|
||||||
|
|
|
@ -166,6 +166,30 @@ rec {
|
||||||
/* Returns the current nixpkgs release number as string. */
|
/* Returns the current nixpkgs release number as string. */
|
||||||
release = lib.strings.fileContents ../.version;
|
release = lib.strings.fileContents ../.version;
|
||||||
|
|
||||||
|
/* The latest release that is supported, at the time of release branch-off,
|
||||||
|
if applicable.
|
||||||
|
|
||||||
|
Ideally, out-of-tree modules should be able to evaluate cleanly with all
|
||||||
|
supported Nixpkgs versions (master, release and old release until EOL).
|
||||||
|
So if possible, deprecation warnings should take effect only when all
|
||||||
|
out-of-tree expressions/libs/modules can upgrade to the new way without
|
||||||
|
losing support for supported Nixpkgs versions.
|
||||||
|
|
||||||
|
This release number allows deprecation warnings to be implemented such that
|
||||||
|
they take effect as soon as the oldest release reaches end of life. */
|
||||||
|
oldestSupportedRelease =
|
||||||
|
# Update on master only. Do not backport.
|
||||||
|
2111;
|
||||||
|
|
||||||
|
/* Whether a feature is supported in all supported releases (at the time of
|
||||||
|
release branch-off, if applicable). See `oldestSupportedRelease`. */
|
||||||
|
isInOldestRelease =
|
||||||
|
/* Release number of feature introduction as an integer, e.g. 2111 for 21.11.
|
||||||
|
Set it to the upcoming release, matching the nixpkgs/.version file.
|
||||||
|
*/
|
||||||
|
release:
|
||||||
|
release <= lib.trivial.oldestSupportedRelease;
|
||||||
|
|
||||||
/* Returns the current nixpkgs release code name.
|
/* Returns the current nixpkgs release code name.
|
||||||
|
|
||||||
On each release the first letter is bumped and a new animal is chosen
|
On each release the first letter is bumped and a new animal is chosen
|
||||||
|
|
|
@ -62,6 +62,14 @@
|
||||||
notes</link> for details.
|
notes</link> for details.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Module authors can use
|
||||||
|
<literal>mkRenamedOptionModuleWith</literal> to automate the
|
||||||
|
deprecation cycle without annoying out-of-tree module authors
|
||||||
|
and their users.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-release-22.05-new-services">
|
<section xml:id="sec-release-22.05-new-services">
|
||||||
|
@ -1200,7 +1208,8 @@
|
||||||
Legacy options have been mapped to the corresponding
|
Legacy options have been mapped to the corresponding
|
||||||
options under under
|
options under under
|
||||||
<link xlink:href="options.html#opt-nix.settings">nix.settings</link>
|
<link xlink:href="options.html#opt-nix.settings">nix.settings</link>
|
||||||
but may be deprecated in the future.
|
and will be deprecated when NixOS 21.11 reaches end of
|
||||||
|
life.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
|
@ -21,6 +21,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
- [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.
|
- [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.
|
||||||
|
|
||||||
|
- Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
|
||||||
|
|
||||||
## New Services {#sec-release-22.05-new-services}
|
## New Services {#sec-release-22.05-new-services}
|
||||||
|
|
||||||
- [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
|
- [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
|
||||||
|
@ -448,7 +450,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
Similarly [virtualisation.vmVariantWithBootloader](#opt-virtualisation.vmVariantWithBootLoader) was added.
|
Similarly [virtualisation.vmVariantWithBootloader](#opt-virtualisation.vmVariantWithBootLoader) was added.
|
||||||
|
|
||||||
- The configuration portion of the `nix-daemon` module has been reworked and exposed as [nix.settings](options.html#opt-nix-settings):
|
- The configuration portion of the `nix-daemon` module has been reworked and exposed as [nix.settings](options.html#opt-nix-settings):
|
||||||
* Legacy options have been mapped to the corresponding options under under [nix.settings](options.html#opt-nix.settings) but may be deprecated in the future.
|
* Legacy options have been mapped to the corresponding options under under [nix.settings](options.html#opt-nix.settings) and will be deprecated when NixOS 21.11 reaches end of life.
|
||||||
* [nix.buildMachines.publicHostKey](options.html#opt-nix.buildMachines.publicHostKey) has been added.
|
* [nix.buildMachines.publicHostKey](options.html#opt-nix.buildMachines.publicHostKey) has been added.
|
||||||
|
|
||||||
- The `writers.writePyPy2`/`writers.writePyPy3` and corresponding `writers.writePyPy2Bin`/`writers.writePyPy3Bin` convenience functions to create executable Python 2/3 scripts using the PyPy interpreter were added.
|
- The `writers.writePyPy2`/`writers.writePyPy3` and corresponding `writers.writePyPy2Bin`/`writers.writePyPy3Bin` convenience functions to create executable Python 2/3 scripts using the PyPy interpreter were added.
|
||||||
|
|
|
@ -112,11 +112,11 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(mkRenamedOptionModule [ "nix" "useChroot" ] [ "nix" "useSandbox" ])
|
(mkRenamedOptionModuleWith { sinceRelease = 2003; from = [ "nix" "useChroot" ]; to = [ "nix" "useSandbox" ]; })
|
||||||
(mkRenamedOptionModule [ "nix" "chrootDirs" ] [ "nix" "sandboxPaths" ])
|
(mkRenamedOptionModuleWith { sinceRelease = 2003; from = [ "nix" "chrootDirs" ]; to = [ "nix" "sandboxPaths" ]; })
|
||||||
(mkRenamedOptionModule [ "nix" "daemonIONiceLevel" ] [ "nix" "daemonIOSchedPriority" ])
|
(mkRenamedOptionModuleWith { sinceRelease = 2205; from = [ "nix" "daemonIONiceLevel" ]; to = [ "nix" "daemonIOSchedPriority" ]; })
|
||||||
(mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.")
|
(mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.")
|
||||||
] ++ mapAttrsToList (oldConf: newConf: mkRenamedOptionModule [ "nix" oldConf ] [ "nix" "settings" newConf ]) legacyConfMappings;
|
] ++ mapAttrsToList (oldConf: newConf: mkRenamedOptionModuleWith { sinceRelease = 2205; from = [ "nix" oldConf ]; to = [ "nix" "settings" newConf ]; }) legacyConfMappings;
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue