lib: Deprecate mkDeferredModuleType, mkDeferredModuleOption
Rename to mkPerSystemType and mkPerSystemOption respectively, since the flake-parts deferredModule implementation has different semantics than Nixpkgs' types.deferredModuleWith (list merge vs single module). The old names are kept as deprecated aliases. Add mkLegacyDeferredModuleType as internal helper preserving the list-merge behavior.
This commit is contained in:
parent
e8afcc669c
commit
1da4b5a42f
1 changed files with 27 additions and 6 deletions
33
lib.nix
33
lib.nix
|
|
@ -70,6 +70,13 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Internal: preserves legacy list-merge behavior for perSystem type-merging.
|
||||||
|
mkLegacyDeferredModuleType =
|
||||||
|
module:
|
||||||
|
deferredModuleWith {
|
||||||
|
staticModules = [ module ];
|
||||||
|
};
|
||||||
|
|
||||||
errorExample = ''
|
errorExample = ''
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
|
|
@ -182,18 +189,32 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkDeferredModuleType =
|
/**
|
||||||
module:
|
Deprecated. Use mkPerSystemType/mkPerSystemOption for `perSystem` type-merging, or
|
||||||
deferredModuleWith {
|
use Nixpkgs `types.deferredModule` directly, noting the lack of list wrapping;
|
||||||
staticModules = [ module ];
|
see `deferredModuleWith` docs.
|
||||||
};
|
*/
|
||||||
mkPerSystemType = mkDeferredModuleType;
|
mkDeferredModuleType = mkLegacyDeferredModuleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Given a module, construct an option type suitable for type-merging into `perSystem`'s type.
|
||||||
|
*/
|
||||||
|
mkPerSystemType = mkLegacyDeferredModuleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Deprecated. Use mkPerSystemOption for `perSystem` type-merging, or
|
||||||
|
use `mkOption` and Nixpkgs `types.deferredModule` directly, noting the
|
||||||
|
lack of list wrapping; see `deferredModuleWith` docs.
|
||||||
|
*/
|
||||||
mkDeferredModuleOption =
|
mkDeferredModuleOption =
|
||||||
module:
|
module:
|
||||||
mkOption {
|
mkOption {
|
||||||
type = flake-parts-lib.mkPerSystemType module;
|
type = flake-parts-lib.mkPerSystemType module;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Given a module, construct an option declaration suitable for merging into the core `perSystem` module.
|
||||||
|
*/
|
||||||
mkPerSystemOption = mkDeferredModuleOption;
|
mkPerSystemOption = mkDeferredModuleOption;
|
||||||
|
|
||||||
# Polyfill https://github.com/NixOS/nixpkgs/pull/344216
|
# Polyfill https://github.com/NixOS/nixpkgs/pull/344216
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue