Commit Graph

222 Commits

Author SHA1 Message Date
Robert Hensing
47e4a18d01 types.attrTagWith: remove
Keep it simple for now.
2024-04-04 12:00:54 +02:00
Robert Hensing
1465777b63 lib.types.attrTag: Custom error when passing bare type 2024-04-04 11:54:46 +02:00
Robert Hensing
475a55b2f0 lib.types.attrTag: Remove tags from description
You can find them in the sub-options now.
2024-04-04 11:54:46 +02:00
Robert Hensing
4c7d990bad lib.types.attrTag: Provide declarations, definitions 2024-04-04 11:54:45 +02:00
Robert Hensing
e090bb55f0 lib/types.nix: Fix getSubOptions doc
This comment was added in 73f32d0375, when it was already
supposed to be an attrset.
2024-04-04 11:54:45 +02:00
Robert Hensing
0bc9783221 lib.types.attrTag: Support type merging 2024-04-04 11:54:45 +02:00
Robert Hensing
42d3b54f0d lib.types.attrTag: Take options instead of types 2024-04-04 11:54:45 +02:00
Robert Hensing
5b49672af4 lib.types.attrTag: Support module docs 2024-04-04 11:54:41 +02:00
Robert Hensing
ca81a89839 lib.types.attrTag: init 2024-02-11 18:44:52 +01:00
Silvan Mosberger
f37ba19765
Merge pull request #284512 from hercules-ci/lib-types-unique-merge
lib.types.unique: Check inner type deeply
2024-02-10 02:52:45 +01:00
Robert Hensing
bd285d2c11 lib.types.uniq: Check inner type
We now reuse the `unique` type, which implements this.
Keeping the duplication around would be bad at this point.
2024-02-04 15:49:55 +01:00
Danila Danko
ad853c1368 types.nix: fix nonEmptyListOf 2024-01-29 22:29:44 +03:00
Robert Hensing
b78ba9bc68 lib.types.unique: Check inner type deeply
This doesn't change uniq. Why not?

- In NixOS it seems that uniq is only used with
  simple types that are fully checked by t.check.

- It exists for much longer and is used more widely.

- I believe we should deprecate it, because unique was
  already better.

- unique can be a proving ground.
2024-01-28 14:09:27 +01:00
Robert Hensing
6f4d0b5261 lib.types: Improve descriptions of composed types that have commas
Type:   either ints.positive (enum ["auto"])
Before: positive integer, meaning >0 or value "auto" (singular enum)
After:  positive integer, meaning >0, or value "auto" (singular enum)
2023-12-23 11:40:27 +01:00
Adam Joseph
80472e3754 treewide: add __attrsFailEvaluation and __recurseIntoDerivationForReleaseJobs 2023-12-15 05:13:46 -08:00
Silvan Mosberger
8d3978c149 lib.types.boolByOr: init
This type is necessary to have correct merging behavior for
`allowUnfreePredicate` and `allowInsecurePredicate`

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-12-08 21:50:29 +01:00
Silvan Mosberger
5075a51403 lib.types.string: Use lib.warn instead of deprecationMessage
This will cause a poorer error message without option location
information, but it will catch all uses of its use.
2023-08-10 06:31:36 +02:00
Silvan Mosberger
040b0ad3ed Revert "lib.types.string: Deprecation error instead of warning"
This reverts commit c59c6b1c57.

This was a bit too ambitious, because no warnings were previously
triggered when `string` was nested e.g. `attrsOf string`, `nullOr
string`, etc.

Support for nested type deprecation warnings was introduced in
4b54aedee5, but had to be reverted in
a36e6760e9 because it caused infinite
recursion for some users, and I couldn't remember that it was reverted.
2023-08-10 06:25:29 +02:00
Silvan Mosberger
c59c6b1c57 lib.types.string: Deprecation error instead of warning
The type has given a warning on use since [4 years ago](03392cd336b128a1639c648baf0f6c1a1271e0d2), I think it's safe to move the deprecation to the next stage: An error instead of a warning.
2023-08-08 04:13:22 +02:00
Naïm Favier
14d3e5685a
lib/types: add pathInStore 2023-06-27 11:48:08 +02:00
figsoda
8283d3d8d1 lib/types: remove unused rec 2023-06-23 09:41:04 +00:00
Robert Hensing
2e485f2581 lib.types.submoduleWith: Interoperate with older version of submoduleWith 2023-05-17 12:51:09 +02:00
Robert Hensing
16d594a0e2 lib.types.pkgs: init
A nominal type.
2023-05-10 15:55:08 +02:00
Robert Hensing
8054785157 lib/modules: Move class out of specialArgs 2023-05-06 18:32:58 +02:00
Robert Hensing
872a24ebbc lib.strings: isSimpleCoercibleString -> isStringLike 2022-12-31 01:33:46 +01:00
Robert Hensing
29efb2c438 lib.types.path: Do not allow lists of strings 2022-12-31 01:03:24 +01:00
Robert Hensing
fed5dc66f8 treewide: isCoercibleToString -> isMoreCoercibleToString
No change in behavior.
2022-12-31 01:03:24 +01:00
Robert Hensing
3a4c9bdbe6 lib.types.anything: Use isSimpleCoercibleToString
Expecting no change in behavior.
2022-12-31 01:03:24 +01:00
Robert Hensing
ef9b04ec5f lib.types.loaOf: Update comment to say deprecate instead of remove 2022-12-29 00:49:32 +01:00
Robert Hensing
9af74cc709 Revert "lib/types: remove loaOf"
This reverts commit c8c538f2ab.

Reason: removal did not follow a deprecation process and it hurts
        nixops 1.7 users.
2022-12-29 00:48:22 +01:00
Sandro Jäckel
c8c538f2ab
lib/types: remove loaOf 2022-12-19 08:31:43 +01:00
Naïm Favier
025f32f705
lib/types: add descriptionClass for path 2022-11-08 13:31:29 +01:00
Robert Hensing
6259b29f29
Merge pull request #194035 from Ma27/show-option-quoting
lib/options/showOption: fix quoting of attr-names that are not identifiers
2022-10-18 11:31:54 +02:00
Silvan Mosberger
bb2fb15247
Merge pull request #192755 from hercules-ci/lib-types-unspecified-name 2022-10-13 16:56:23 +02:00
Maximilian Bosch
ac48f07282
lib/types: always use <function body> instead of [function body] to indicate a function inside an option structure
The motivation is to have a single identifier for that. Useful for the
next commit where I'll try to escape option-parts correctly (options can
be any kind of strings, but unless these are Nix identifiers, they must
be quoted).

Since `<function body>` (or `<name>`/`*`) are special identifiers in
error messages and the manual, we need a unique way to mark an option
part as function call because these are not to be quoted.
2022-10-07 10:01:44 +02:00
figsoda
4ef185c1b8 lib/types.nix: remove unused bindings 2022-09-26 22:18:55 -04:00
piegames
0ada9fff8a lib/types.nix: Document that it should not be used
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2022-09-25 16:37:15 +02:00
Robert Hensing
43efa4900c lib.types.unspecified: Make name match attribute name again
@Infinisil: This isn't right, the name shouldn't be changed, but instead a description should be added
https://github.com/NixOS/nixpkgs/pull/191353#discussion_r978983401
2022-09-24 12:29:09 +01:00
Robert Hensing
1cbe950384 lib.types: Add parentheses where description is ambiguous 2022-09-17 22:16:39 +01:00
Silvan Mosberger
6389a26e5f
Merge pull request #181834 from ncfavier/numbers
lib/types: add `number`
2022-09-09 19:59:29 +02:00
Naïm Favier
eb72be8541
lib/types: add number
For numbers that can be ints or floats.
2022-07-24 18:03:28 +02:00
Klemens Nanni
574a90771f lib.types, nixos/users: Make passwdEntry available
More nixpkgs code such as `boot.initrd.systemd.emergencyAccess` defines
options that takes hashed passwords, so move the type definition from
modules/ into lib/.

The type definition itself stays unchanged.
2022-06-25 16:34:47 +04:00
Robert Hensing
dfd98a5da2 lib.deferredModule: Make it properly singular 2022-06-14 23:01:27 +02:00
Robert Hensing
19a069ab8b lib.types: Add deferredModuleWith 2022-06-14 23:01:27 +02:00
Robert Hensing
781c2e0789 lib.types.deferredModule: Allow path-typed module references 2022-06-14 23:01:26 +02:00
Robert Hensing
a2c29561e7 lib.types.deferredModule: Improve reported location 2022-06-14 23:01:26 +02:00
Robert Hensing
4746f6d03e lib.types: Add deferredModule 2022-06-14 23:01:23 +02:00
Robert Hensing
9dead5565a lib/types, lib/modules: Remove unused extensionOffset 2022-06-14 17:25:06 +02:00
Robert Hensing
d4a84aeeca lib/types: Use map instead of imap1 in submoduleWith 2022-06-14 17:09:05 +02:00
Silvan Mosberger
907627f656 lib/types: Simplify submoduleWith shorthandOnlyDefinesConfig handling
The module system already uses the parent module's _file as a fallback,
so we don't need to inject the file in a weird way
2022-06-14 17:07:33 +02:00