Silvan Mosberger
b97742c66c
Merge pull request #156533 from hercules-ci/issue-146882-transparent-submodule-options
...
lib.modules: Let module declare options directly in bare submodule
2022-03-16 21:44:35 +01:00
Robert Hensing
679ec68d57
Merge pull request #163127 from hercules-ci/optimize-optionSet-compat
...
lib/modules.nix: Optimize optionSet legacy compat code
2022-03-11 17:36:16 +01:00
Robert Hensing
a15fbdb88f
Merge pull request #163443 from ncfavier/fix-types-package
...
lib.types.package: only call toDerivation when necessary
2022-03-11 11:56:44 +01:00
Naïm Favier
9c2266c031
lib.types.package: only call toDerivation when necessary
...
The current logic assumes that everything that isn't a derivation is a
store path, but it can also be something that's *coercible* to a store
path, like a flake input.
Unnecessary uses of `lib.toDerivation` result in errors in pure evaluation
mode when `builtins.storePath` is disabled.
Also document what a `package` is.
2022-03-11 11:26:34 +01:00
Robert Hensing
55ee7ab4a6
lib.types.optionType: Only merge when necessary
2022-03-10 20:25:49 +01:00
Robert Hensing
3ddac7a41a
lib.isDerivation: Simplify
2022-03-09 15:48:30 +01:00
Levi Wright
752a8c516d
lib/systems: Fix uclibc float-abi being flipped
...
uclibceabihf and uclibceabi's float hardness was flipped, which causes many headaches
2022-03-07 17:05:51 +00:00
Robert Hensing
c4b38702e5
lib/modules.nix: Add comment about internal shorthand null value
2022-03-07 11:23:24 +01:00
Robert Hensing
c90844aeb9
lib/tests/modules: Add test case for duplicate option error file location
2022-03-07 11:21:23 +01:00
Robert Hensing
e162ed8a14
lib/modules.nix: Move comment to the actual legacy code
2022-03-07 11:21:19 +01:00
Robert Hensing
02de37ca07
lib/modules.nix: Optimize optionSet legacy compat code
...
It's still in the hot path.
2022-03-07 11:07:50 +01:00
Robert Hensing
db08290453
Revert "lib.modules: Remove redundant fixupOptionType in option injection"
...
This reverts commit 6b077c47ff
.
Thanks Infinisil for discovering this problem:
> After a lot of trial and error, trying to prove why fixupOptionType should
> be used here or not, I figured it out: It's needed for the sake of file
> locations in error messages.
2022-03-07 10:59:03 +01:00
Robert Hensing
2050669922
lib.modules: Inline a private function
...
This should save about four calls per module.
2022-03-03 00:29:15 +01:00
Robert Hensing
28aeae2126
lib.modules: Default shorthandOnlyDefinesConfig to true when null
2022-03-03 00:29:14 +01:00
Robert Hensing
6b077c47ff
lib.modules: Remove redundant fixupOptionType in option injection
2022-03-03 00:29:14 +01:00
Robert Hensing
8baea8b82c
lib.modules: Make option injection work when shorthandOnlyDefinesConfig
2022-03-03 00:29:14 +01:00
Robert Hensing
11537c9c02
lib.modules: Improve option-is-prefix error message
2022-03-03 00:29:11 +01:00
Robert Hensing
81f342d1f3
lib.modules: Explain why options can only be merged into submodules
2022-03-03 00:28:35 +01:00
Robert Hensing
0c09eb343d
lib.modules: Refactor option scanning slightly
...
This scans the options with fewer function calls, improving performance.
It also removes a let Env from the happy flow of the new logic.
2022-03-03 00:28:35 +01:00
Robert Hensing
58a8a48e9d
lib.types.submodule: Remove redundant isSubmodule attr
2022-03-03 00:28:35 +01:00
Robert Hensing
d030e2109f
lib.modules: Let module declare options directly in bare submodule
...
... where a bare submodule is an option that has a type like
`submoduleWith x`, as opposed to `attrsOf (submoduleWith x)`.
This makes migration unnecessary when introducing a freeform type
in an existing option tree.
Closes #146882
2022-03-03 00:28:35 +01:00
Silvan Mosberger
6bcfd61109
Merge pull request #162283 from Infinisil/functionTo.description
...
lib/types: Fix functionTo description
2022-03-02 19:42:48 +01:00
Silvan Mosberger
c1dfec2be6
Merge pull request #149689 from Infinisil/types-type
...
Introduce `types.optionType` and use it for `freeformType`
2022-03-02 18:29:44 +01:00
Silvan Mosberger
023fa7b923
lib.modules: Use types.optionType for _module.freeformType
...
This ensures that the module file locations are propagated to the
freeform type, which makes it so that submodules in freeform types now
have their declaration location shown in the manual, fixing
https://github.com/NixOS/nixpkgs/issues/132085 .
In addition, this also newly allows freeformTypes to be declared
multiple times and all declarations being merged together according to
normal option merging.
This also removes some awkwardness regarding the type of `freeformType`
2022-03-01 19:31:02 +01:00
Silvan Mosberger
5cbeddfde4
lib.types: Introduce types.optionType
...
This type correctly merges multiple option types together while also
annotating them with file information. In a future commit this will be
used for `_module.freeformType`
2022-03-01 19:31:00 +01:00
Silvan Mosberger
fb023114ed
lib/types: Fix functionTo description
2022-03-01 02:04:35 +01:00
0x4A6F
3362ff0f7b
Merge pull request #157301 from pennae/lib-add-mkPackageOption
...
lib: add mkPackageOption to default.nix
2022-02-28 20:37:59 +01:00
Silvan Mosberger
ff13cd5d3e
lib/modules: Use types.raw for _module.args
...
Fixes https://github.com/NixOS/nixpkgs/issues/53458 , as types.raw
doesn't allow setting multiple values
2022-02-22 15:54:45 +01:00
Silvan Mosberger
665344f148
lib/types: Introduce types.raw for unprocessed values
2022-02-22 15:54:44 +01:00
Silvan Mosberger
b333395be5
lib/tests: Add tests for emptyValue
2022-02-17 18:48:30 +01:00
Silvan Mosberger
382289027f
lib/types: Fix emptyValue of listOf and nonEmptyListOf
...
An empty list is [], not {}!
Also, non-empty lists shouldn't have a default of an empty list!
2022-02-17 18:48:27 +01:00
Renaud
980ed8dd76
Merge pull request #155707 from 06kellyjac/feh
...
feh: correct license
2022-02-16 13:31:43 +01:00
Jonathan Ringer
12fd8a77e1
Merge remote-tracking branch 'origin/master' into staging-next
...
Conflicts:
pkgs/top-level/aliases.nix
2022-02-10 09:21:09 -08:00
John Rinehart
5688e7ff35
fix: typo in lib/attrsets.nix
2022-02-10 01:16:20 +02:00
Jonathan Ringer
46fd0afcb3
Merge remote-tracking branch 'origin/master' into staging-next
...
Conflicts:
pkgs/development/python-modules/pysdl2/default.nix
pkgs/top-level/aliases.nix
2022-02-06 18:36:59 -08:00
Robert Hensing
8403e02a5d
Merge pull request #126769 from ncfavier/nixosSystem-lib
...
nixos: move default module location logic to `eval-config.nix`
2022-02-06 22:49:17 +01:00
Jonathan Ringer
e680c83323
Merge remote-tracking branch 'origin/master' into staging-next
...
Conflicts:
pkgs/tools/graphics/scrot/default.nix
2022-02-06 10:36:30 -08:00
Jan Tojnar
1e1396aafc
lib.sources: Improve docs
...
Change comment type so than nixdoc picks them up into Nixpkgs manual.
Also improve phrasing a bit and move stuff around so that it is formatted better.
2022-01-30 02:04:51 +01:00
Jan Tojnar
2f012d93ed
lib.trivial: Change comment type before concat function
...
C-style comment was being picked up by nixdoc as a documentation comment for the function.
2022-01-30 02:02:09 +01:00
pennae
1c0918d828
lib: add mkPackageOption to default.nix
...
this was forgotten in #155669
2022-01-29 18:28:20 +01:00
06kellyjac
e98d8f7207
feh: correct license
2022-01-28 14:23:25 +00:00
Naïm Favier
5a07097772
lib/modules: introduce setDefaultModuleLocation
...
Wraps a module with a default location for reporting errors.
2022-01-27 22:12:53 +01:00
Dmitry Kalinkin
0693fd77f7
Merge branch 'staging-next' into staging
...
Conflicts:
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
nixos/doc/manual/release-notes/rl-2205.section.md
pkgs/development/python-modules/aioesphomeapi/default.nix
pkgs/development/python-modules/mat2/default.nix
pkgs/development/python-modules/pydevccu/default.nix
pkgs/development/python-modules/pywlroots/default.nix
pkgs/development/python-modules/rokuecp/default.nix
2022-01-27 00:54:10 -05:00
Robert Hensing
8919495cac
Merge pull request #156503 from hercules-ci/nixos-add-system.build-options
...
nixos: Add `system.build.`{`toplevel`,`installBootLoader`}, improve error message
2022-01-25 14:13:24 +01:00
Jonathan Ringer
e379e3d4bb
Merge remote-tracking branch 'origin/staging-next' into staging
...
Conflicts:
pkgs/development/python-modules/googleapis-common-protos/default.nix
2022-01-24 23:49:19 -08:00
Thiago Kenji Okada
f0e9f54d6e
lib/meta: fix typo in platformMatch comment
2022-01-24 12:54:22 -03:00
Alyssa Ross
1a60dd2adc
Merge remote-tracking branch 'nixpkgs/staging-next' into staging
...
Conflicts:
pkgs/development/python-modules/cupy/default.nix
pkgs/development/python-modules/staticjinja/default.nix
2022-01-24 15:39:34 +00:00
Robert Hensing
8691ab3d47
lib.modules: Define mergeOneOption in terms of mergeUniqueOption
2022-01-24 16:23:18 +01:00
Robert Hensing
ba3e91ed43
lib.types: Add unique like uniq, but custom errors
...
Couldn't extend types.uniq and it had a silly name anyway.
Now we can have better error messages.
2022-01-24 16:14:55 +01:00
pennae
865a9ed3f5
Merge pull request #155669 from schuelermine/patch-mkPackageOption
...
lib/options: Add mkPackageOption
2022-01-24 13:35:32 +00:00