about summary refs log tree commit diff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2023-08-14Merge pull request #243511 from tweag/lib.lists.hasPrefixSilvan Mosberger2-0/+72
`lib.lists.{hasPrefix,removePrefix}`: init
2023-08-14Merge pull request #242339 from hercules-ci/modules-catch-bare-typeSilvan Mosberger5-1/+54
lib/modules: Report a good error when option tree has bare type
2023-08-14lib.customisation.makeScope: Make `overrideScope` consistent with ↵Artturin1-4/+5
`makeScopeWithSplicing` Right now converting `makeScope` to `makeScopeWithSplicing` is not transparent to users and requires adding a warning for `overrideScope'` in the set itself. Warning and `overrideScope'` were added in 2018 b9dce11712d2bfc8cd367df5a7f737a5cec1e252 and there should be no users left after 5 years.
2023-08-14lib/modules: Report a good error when option tree has bare typeRobert Hensing5-1/+54
Note that this removes the possibility of declaring an option named `_type`.
2023-08-12Merge pull request #247825 from tweag/lib.path-mdSilvan Mosberger1-157/+163
Minor `lib.path` documentation consistency improvements
2023-08-11lib/path/tests: Fix test setup on darwinRobert Hensing1-1/+8
These statements are taken from the `lib/test/release.nix` tests, which previously also worked on darwin. Unblocks https://github.com/NixOS/nix/pull/8569 when backported
2023-08-10Merge pull request #248278 from infinisil/revert-strings-errorSilvan Mosberger1-1/+6
Change `types.string` error to a warning instead
2023-08-10Merge pull request #235625 from ShamrockLee/lib-doc-tidySilvan Mosberger1-2/+2
2023-08-10lib.types.string: Use lib.warn instead of deprecationMessageSilvan Mosberger1-4/+6
This will cause a poorer error message without option location information, but it will catch all uses of its use.
2023-08-10Revert "lib.types.string: Deprecation error instead of warning"Silvan Mosberger1-1/+4
This reverts commit c59c6b1c57da542b6b4af5d2ac27d1b99e7f0c5e. 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 4b54aedee5e05aaf2838f6d951508b83e33d2baa, but had to be reverted in a36e6760e9be0ec260b637a06d751d39e2a78e4e because it caused infinite recursion for some users, and I couldn't remember that it was reverted.
2023-08-08lib.types.string: Deprecation error instead of warningSilvan Mosberger1-4/+1
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-08lib.path: Add argument docs when missingSilvan Mosberger1-1/+4
2023-08-08lib.path: Indent comments the sameSilvan Mosberger1-146/+150
2023-08-08lib.path: Make documentation more uniformSilvan Mosberger1-27/+26
- Always have a trailing dot after sentences - Link more things - Fix some formatting - Use `append` instead of `+ ("/"`
2023-08-04treewide: update mainProgram docsArtturin1-3/+2
2023-08-04Merge pull request #242695 from tweag/lib.path.subpath.componentsRobert Hensing3-0/+65
`lib.path.subpath.components`: init
2023-08-02Merge pull request #243139 from hercules-ci/modules-test-default-argumentRobert Hensing2-0/+31
lib/tests/modules: Test that _module.args works when a default argume…
2023-07-31lib.getExe: Do not make assumptions about the main programRobert Hensing1-1/+5
Before this commit, getExe assumes that if `meta.mainProgram` is unset, it has a main program that's named after the package name. While this is probable, it leads to a bad error when the assumption does not hold. If the user called `getExe` themselves, they might narrow down the location of the assumption quite easily, but if that's not the case, they'll have to go down the rabbit hole to figure out what went wrong. For example, a NixOS module may use `lib.getExe` on a package-typed option which is then used in the system configuration. This then typically leads to a failure *after* deployment, which is bad, and it's quite likely that the user will debug the package output contents before digging through the NixOS module, which is bad. Furthermore the `getExe` call is rather inconspicuous as it does not contain something like "/bin/foo", which is bad. Also modules can be hard to read for a newbie, which is bad. All of this can be avoided by requiring `meta.mainProgram`. Many packages already have the attribute, and I would expect 80% of `getExe` usages to be covered by 20% of packages, because plenty of packages aren't used with `getExe` anyway. Finally we could make an effort to set `mainProgram` semi-automatically using `nix-index`.
2023-07-28Revert "lib.customisation: uncurry makeScopeWithSplicing"Silvan Mosberger1-14/+8
2023-07-28lib.makeScopeWithSplicing: provide default for keep,extraArtturin1-1/+9
These are often unneeded by the user.
2023-07-27lib.customisation: uncurry makeScopeWithSplicingAdam Joseph1-8/+6
Deeply-curried functions are pretty error-prone in untyped languages like Nix. This is a particularly bad case because `top-level/splice.nix` *also* declares a makeScopeWithSplicing, but it takes *two fewer arguments*. Let's switch to attrset-passing form, to provide some minimal level of sanity-checking.
2023-07-27Merge pull request #244358 from tweag/lib.path.partsRobert Hensing2-1/+67
`lib.path.splitRoot`: init
2023-07-27Merge pull request #245271 from sternenseemann/module-system-merge-no-typeRobert Hensing3-1/+29
lib/modules: handle typeless options in mergeModules
2023-07-26lib/modules: handle typeless options in mergeModulessternenseemann3-1/+29
mkOption does not require a `type` argument and does not set the resulting attribute if it is not given. Consequently, we need to be prepared to merge options that have no type information.
2023-07-26lib/path/README.md: Justify returning subpathsSilvan Mosberger1-0/+21
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-07-26lib.path.subpath.components: initSilvan Mosberger2-0/+44
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-26lib.path.subpath.isValid: Add definition of a subpathSilvan Mosberger1-0/+3
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-26lib.path.splitRoot: initSilvan Mosberger2-1/+64
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-26Merge pull request #243520 from tweag/lib.lists.commonPrefixSilvan Mosberger2-29/+124
`lib.lists.{findFirstIndex,commonPrefix}`: init
2023-07-25Merge pull request #244819 from ncfavier/toKeyValue-indentNaïm Favier1-2/+3
lib/generators/toKeyValue: add `indent` parameter
2023-07-24Merge pull request #244330 from thillux/bluefield2-remove-cpuAdam Joseph1-1/+0
lib.systems.bluefield2: remove cpu profile
2023-07-23Merge pull request #242035 from Icy-Thought/zsh-abbrSandro1-0/+7
zsh-abbr: init at 5.1.0
2023-07-22lib/generators/toKeyValue: add `indent` parameterNaïm Favier1-2/+3
toKeyValue is generic enough that it is sometimes used as part of other format generators, where it might be useful to specify the indentation level.
2023-07-20lib.lists.commonPrefix: initSilvan Mosberger2-1/+60
2023-07-20Merge pull request #244118 from amjoseph-nixpkgs/pr/fix/244045Adam Joseph1-5/+6
lib.systems.extensions.sharedLibrary: do not `throw`
2023-07-19lib.lists.findFirstIndex: initSilvan Mosberger2-28/+64
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-19Merge pull request #238013 from tweag/lib.path.removePrefixRobert Hensing2-1/+71
`lib.path.removePrefix`: init
2023-07-19Merge pull request #244044 from tweag/lib-readmeRobert Hensing5-6/+107
Create a Readme in `lib`
2023-07-19lib.systems.bluefield2: remove cpu profileMarkus Theil1-1/+0
Some software, e.g. systemd, failed to build with set cpu profile. Signed-off-by: Markus Theil <theil.markus@gmail.com>
2023-07-18lib.attrsets.mergeAttrsList: initSilvan Mosberger2-0/+61
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-18lib/tests: Unify documentation of individual testable filesSilvan Mosberger4-6/+34
2023-07-18lib: Add READMESilvan Mosberger1-0/+73
Co-authored-by: Alexander Groleau <alex@proof.construction> Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io> Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-14lib.lists.removePrefix: initSilvan Mosberger2-0/+36
2023-07-14lib.lists.hasPrefix: initSilvan Mosberger2-0/+36
2023-07-14lib.systems.bluefield2: initMarkus Theil2-0/+12
Add support for Nvidia's Bluefield 2 plattform as a compilation target. There exists a version with and without crypto support, while the crypto supported version is the most common one. Support for the non-crypto version can be easily added in the future, if needed. For a datasheet of the hardware, see: https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/documents/datasheet-nvidia-bluefield-2-dpu.pdf Signed-off-by: Markus Theil <theil.markus@gmail.com>
2023-07-12Merge pull request #238154 from amjoseph-nixpkgs/pr/gcc/crossStageStaticAdam Joseph1-1/+20
gccCrossStageStatic: enable dynamic libraries, rename it
2023-07-12lib/tests/modules: Test that _module.args works when a default argument is setRobert Hensing2-0/+31
2023-07-11lib.mergeModules: Add context to error messageRobert Hensing2-2/+5
2023-07-11lib/modules.nix: FormatRobert Hensing1-19/+28
2023-07-11lib/modules.nix: Inline single-use `subtree` bindingsRobert Hensing1-4/+4