1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-10 18:12:34 +09:00

nixos/eval-config: Deprecate NIXOS_EXTRA_MODULE_PATH (#349549)

This commit is contained in:
Robert Hensing 2025-01-05 20:51:20 +01:00 committed by GitHub
commit 04a5fd4b4f
Signed by: github
GPG key ID: B5690EEEBB952194
3 changed files with 24 additions and 31 deletions

View file

@ -16,31 +16,3 @@ outside of Nixpkgs. These modules can be imported:
services.exampleModule.enable = true;
}
```
The environment variable `NIXOS_EXTRA_MODULE_PATH` is an absolute path
to a NixOS module that is included alongside the Nixpkgs NixOS modules.
Like any NixOS module, this module can import additional modules:
```nix
# ./module-list/default.nix
[
./example-module1
./example-module2
]
```
```nix
# ./extra-module/default.nix
{ imports = import ./module-list.nix; }
```
```nix
# NIXOS_EXTRA_MODULE_PATH=/absolute/path/to/extra-module
{ config, lib, pkgs, ... }:
{
# No `imports` needed
services.exampleModule1.enable = true;
}
```

View file

@ -45,7 +45,7 @@ file.
- `buildDocsInSandbox` indicates whether the option documentation for the
module can be built in a derivation sandbox. This option is currently only
honored for modules shipped by nixpkgs. User modules and modules taken from
`NIXOS_EXTRA_MODULE_PATH` are always built outside of the sandbox, as has
`extraModules` are always built outside of the sandbox, as has
been the case in previous releases.
Building NixOS option documentation in a sandbox allows caching of the built

View file

@ -30,8 +30,29 @@ evalConfigArgs@
check ? true
, prefix ? []
, lib ? import ../../lib
, extraModules ? let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
in lib.optional (e != "") (import e)
, extraModules ?
let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
in lib.optional (e != "") (
lib.warn
''
The NIXOS_EXTRA_MODULE_PATH environment variable is deprecated and will be
removed in NixOS 25.05.
We recommend a workflow where you update the expression files instead, but
if you wish to continue to use this variable, you may do so with a module like:
{
imports = [
(builtins.getEnv "NIXOS_EXTRA_MODULE_PATH")
];
}
This has the benefit that your configuration hints at the
non-standard workflow.
''
# NOTE: this import call is unnecessary and it even removes the file name
# from error messages.
import e
)
}:
let