about summary refs log tree commit diff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2024-03-11Avoid top-level `with ...;` in ↵Philip Taron1-1/+8
lib/tests/modules/extendModules-168767-imports.nix
2024-03-11Avoid top-level `with ...;` in lib/tests/modules/alias-with-priority.nixPhilip Taron1-3/+10
2024-03-11Avoid top-level `with ...;` in ↵Philip Taron1-3/+10
lib/tests/modules/alias-with-priority-can-override.nix
2024-03-09doc: actually document `lib.customisation.makeScope` (#294194)Valentin Gagarin1-11/+122
* doc: actually document `lib.customisation.makeScope`
2024-03-07doc: lib.asserts migrate to doc-comments (#292310)Johannes Kirschbauer1-44/+106
2024-03-06Merge branch 'master' into license-updatesJörg Thalheim32-333/+912
2024-03-06Merge pull request #292945 from adisbladis/lib-tointSilvan Mosberger1-10/+17
lib.toInt/toIntBase10: Make more efficient by hoisting up internal strings into higher scope
2024-03-06Merge pull request #292941 from adisbladis/lib-getattrfrompath-envSilvan Mosberger1-2/+1
lib.getAttrFromPath: Don't use errorMessage variable
2024-03-06Merge pull request #292938 from adisbladis/mapattrsrecursivecond-envSilvan Mosberger1-7/+6
lib.mapAttrsRecursiveCond: Eliminate intermediate one intermediate variable environment
2024-03-06Merge pull request #292937 from adisbladis/zipattrs-envSilvan Mosberger1-4/+1
lib.zipAttrs: Remove needless function wrapping
2024-03-06Merge pull request #292934 from adisbladis/lib-choosedevoutputSilvan Mosberger1-4/+1
lib.chooseDevOutputs: Remove needless function wrapping
2024-03-06Merge pull request #292209 from hercules-ci/lazyDerivation-multi-outputSilvan Mosberger2-7/+75
lib.lazyDerivation: Support multi-output derivations
2024-03-06doc: add details on `mapAttrsRecursive[Cond]` (#293509)Valentin Gagarin1-31/+46
* doc: add details on `mapAttrsRecursive[Cond]` from first reading it wasn't clear that `f` also takes the current attribute path. also the value f receives is tricky due to how the condition is evaluated. Co-authored-by: Daniel Sidhion <DanielSidhion@users.noreply.github.com>
2024-03-03Merge pull request #177977 from thefloweringash/call-packages-with-function-argsArtturi2-1/+20
lib/customization: propagate function arguments in callPackagesWith
2024-03-03Merge pull request #288812 from hercules-ci/lib-flake-versionRobert Hensing3-1/+8
`lib/` flake: fix `lib.version`
2024-03-03lib.toInt/toIntBase10: Make more efficient by hoisting up internal strings ↵adisbladis1-10/+17
into higher scope
2024-03-03lib.getAttrFromPath: Don't use errorMessage variableadisbladis1-2/+1
We can just pass the error message on without creating an environment.
2024-03-03lib.mapAttrsRecursiveCond: Eliminate intermediate one intermediate variable ↵adisbladis1-7/+6
environment
2024-03-03lib.zipAttrs: Remove needless function wrappingadisbladis1-4/+1
Returning the partially applied `zipAttrsWith fn` is the same as `sets: zipAttrsWith fn sets`.
2024-03-03lib.chooseDevOutputs: Remove needless function wrappingadisbladis1-4/+1
Returning the partially applied `map getDev` is the same as `drvs: map getDev drvs`.
2024-02-29Merge pull request #292340 from DanielSidhion/fix-fixed-points-docSilvan Mosberger1-7/+6
lib.fixedPoints: fix rendering of docs for `extends`
2024-02-29lib.fixedPoints: fix rendering of docs for `extends`DS1-7/+6
2024-02-29lib.lazyDerivation: Support multi-output derivationsRobert Hensing2-7/+75
2024-02-28Merge pull request #287369 from tweag/lib-remove-polyfillsSilvan Mosberger6-94/+15
`lib`: Remove unneeded polyfills
2024-02-28lib/customization: propagate function arguments in callPackagesWithAndrew Childs2-1/+20
makeOverridable is very careful to ensure the arguments to the overridden function are the same as the input function. As a result, the arguments of hello.override are exactly the same as the original arguments of the hello function that produced the derivation. However, callPackagesWith calls makeOverridable with a lambda that does not propagate the arguments. The override function for a package instantiated with callPackagesWith will not have the original arguments. For example: nix-repl> lib.functionArgs hello.override { callPackage = false; fetchurl = false; hello = false; lib = false; nixos = false; stdenv = false; testers = false; } nix-repl> lib.functionArgs openssl.override { } By copying the arguments onto the inner lambda before passing it to makeOverridable, we can make callPackage and callPackages behave the same. nix-repl> lib.functionArgs openssl.override { buildPackages = false; coreutils = false; cryptodev = false; enableSSL2 = true; enableSSL3 = true; fetchurl = false; lib = false; perl = false; removeReferencesTo = false; static = true; stdenv = false; withCryptodev = true; withPerl = true; }
2024-02-28Merge pull request #291933 from tweag/fileset-tests-posixRobert Hensing1-48/+52
lib.fileset: Fix tests on Darwin, more POSIX
2024-02-27lib.fileset: Fix tests on Darwin, more POSIXSilvan Mosberger1-48/+52
This was found when trying to run the fileset tests on Darwin (https://github.com/NixOS/nix/pull/9546#issuecomment-1967409445), which mysteriously fail on Darwin: test case at lib/fileset/tests.sh:342 failed: toSource { root = "/nix/store/foobar"; fileset = ./.; } should have errored with this regex pattern: lib.fileset.toSource: `root` \(/nix/store/foobar\) is a string-like value, but it should be a path instead. \s*Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead. but this was the actual error: error: lib.fileset.toSource: `root` (/nix/store/foobar) is a string-like value, but it should be a path instead. Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead. After dissecting this, I find out that apparently \s works on Linux, but not on Darwin for some reason! From the bash source code, it looks like <regex.h> with `REG_EXTENDED` is used for all platforms the same, so there's nothing odd there. It's almost impossible to know where <regex.h> comes from, but it looks to be a POSIX thing. So after digging through the almost impossible to find POSIX specifications (https://pubs.opengroup.org/onlinepubs/007908799/xbd/re.html#tag_007_003_005), I can indeed confirm that there's no mention of \s or the like! _However_, there is a mention of `[[:blank:]]`, so we'll use that instead.
2024-02-27Merge pull request #291909 from cdmistman/lib-meta-available-on-doc-exampleRyan Mulligan1-0/+4
lib.meta.availableOn: add example in documentation
2024-02-27lib.meta.platformMatch: expand documentationColton Donnelly1-0/+4
2024-02-27lib.meta.availableOn: add example in documentationColton Donnelly1-0/+4
2024-02-26lib/tests/release: Test lib.version in isolationRobert Hensing1-0/+6
2024-02-26.version: Make lib/.version source of truthRobert Hensing1-9/+0
This way we don't have to make sure they're in sync, and we remove a small step from the release process.
2024-02-26lib flake: Fix versionRobert Hensing3-1/+11
Manually tested with nix-repl> :lf path:lib nix-repl> lib.version
2024-02-26Merge pull request #288677 from tweag/fileset.toListSilvan Mosberger3-2/+82
lib.fileset.toList: init
2024-02-26Merge pull request #291583 from SuperSandro2000/mergeAttrsListSilvan Mosberger1-2/+2
lib: export attrsets.mergeAttrsList
2024-02-26lib.fileset.toList: initSilvan Mosberger3-2/+82
2024-02-26lib: export attrsets.mergeAttrsListSandro1-2/+2
2024-02-23lib/tests/test-with-nix.nix: initRobert Hensing2-54/+71
See https://github.com/NixOS/nix/pull/9900
2024-02-22Merge pull request #286544 from hercules-ci/doRename-docValentin Gagarin1-1/+72
lib.modules.doRename: Add doc comments
2024-02-18lib.evalModules: Fix deprecation doc for args parameterBenoit de Chezelles1-2/+2
2024-02-14lib.modules.doRename: Add doc commentsRobert Hensing1-1/+72
I don't think these are rendered yet, but this at least provides the content. Follow-up to https://github.com/NixOS/nixpkgs/pull/285612
2024-02-10licenses: add mplush7x41-0/+5
2024-02-10Merge pull request #284512 from hercules-ci/lib-types-unique-mergeSilvan Mosberger4-18/+62
lib.types.unique: Check inner type deeply
2024-02-09Merge pull request #287124 from RaitoBezarius/is-sparc-64Ryan Lahfa1-0/+1
lib/systems/inspect: add `isSparc64`
2024-02-09lib.versions: Remove unneeded polyfillSilvan Mosberger1-1/+1
Nix 2.3 (the minimum version needed to evaluate Nixpkgs) supports these, so no need to keep them around.
2024-02-09lib.strings: Remove unneeded polyfillSilvan Mosberger1-2/+1
Nix 2.3 (the minimum version needed to evaluate Nixpkgs) supports these, so no need to keep them around.
2024-02-09lib.lists: Remove unneeded polyfillsSilvan Mosberger1-26/+5
Nix 2.3 (the minimum version needed to evaluate Nixpkgs) supports these, so no need to keep them around.
2024-02-09lib.attrsets: Remove unneeded polyfillsSilvan Mosberger1-9/+6
Nix 2.3 (the minimum version needed to evaluate Nixpkgs) supports these, so no need to keep them around.
2024-02-09lib.trivial: Remove unneeded polyfillsSilvan Mosberger2-56/+2
Nix 2.3 (the minimum version needed to evaluate Nixpkgs) supports these, so no need to keep them around.
2024-02-09Merge pull request #286117 from alois31/lib-deprecationsSilvan Mosberger5-11/+12
lib: make deprecation warnings consistent