Commit Graph

3728 Commits

Author SHA1 Message Date
DS
e93a3d7b58 doc: separate commit header conventions for each area, info on docs changes. 2023-11-13 20:41:08 -08:00
Silvan Mosberger
7eddbf5690
Merge pull request #265710 from ShamrockLee/lib-copy-function-args
lib.mirrorFunctionArgs: init
2023-11-14 05:33:40 +01:00
Silvan Mosberger
9ec104bb2d lib.fileset: Very minor changes 2023-11-13 23:57:52 +01:00
github-actions[bot]
9776723357
Merge master into staging-next 2023-11-11 18:00:58 +00:00
Anthony Roussel
e30f48be94
treewide: fix redirected and broken URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2023-11-11 10:49:01 +01:00
github-actions[bot]
5f5513224f
Merge staging-next into staging 2023-11-11 00:02:47 +00:00
Robert Hensing
cfd83c931f
Merge pull request #261732 from tweag/fileset.fromSource
`lib.fileset.fromSource`: init
2023-11-10 20:32:51 +01:00
github-actions[bot]
ff59322b65
Merge staging-next into staging 2023-11-10 00:02:49 +00:00
Silvan Mosberger
187c04f19c
Merge pull request #266349 from tweag/fileset/cleanups
Minor `lib.fileset` cleanups
2023-11-09 19:58:16 +01:00
Profpatsch
2099ebdf59 lib: add asserts.assertEachOneOf
Along the lines of `assertOneOf`, but expects a list of values to be
compared. This gives a good error message and is useful for lists of
values, like `supportedGhcVersions` in the arguments of
`haskell-language-server`.
2023-11-09 17:27:20 +01:00
Alyssa Ross
e3e57b8f18 lib.systems: elaborate Rust metadata
We need this stuff to be available in lib so make-derivation.nix can
access it to construct the Meson cross file.

This has a couple of other advantages:

 - It makes Rust less special.  Now figuring out what Rust calls a
   platform is the same as figuring out what Linux or QEMU call it.

 - We can unify the schema used to define Rust targets, and the schema
   used to access those values later.  Just like you can set "config"
   or "system" in a platform definition, and then access those same
   keys on the elaborated platform, you can now set "rustcTarget" in
   your crossSystem, and then access "stdenv.hostPlatform.rustcTarget"
   in your code.

"rustcTarget", "rustcTargetSpec", "cargoShortTarget", and
"cargoEnvVarTarget" have the "rustc" and "cargo" prefixes because
these are not exposed to code by the compiler, and are not
standardized.  The arch/os/etc. variables are all named to match the
forms in the Rust target spec JSON.

The new rust.target-family only takes a list, since we don't need to
worry about backwards compatibility when that name is used.

The old APIs are all still functional with no warning for now, so that
it's possible for external code to use a single API on both 23.05 and
23.11.  We can introduce the warnings once 23.05 is EOL, and make them
hard errors when 23.11 is EOL.
2023-11-09 10:02:24 +01:00
Silvan Mosberger
9cbd394aa0 lib.fileset: Remove unused bindings
Thanks nixd!
2023-11-09 00:02:43 +01:00
Silvan Mosberger
0ace383438 lib.fileset: Make error messages more uniform
Just minor changes like:
- Always using "X is a Y, but it should be Z"
- "X is a path that does not exist" rather than "X does not exist"
- Always using multi-line strings for errors
- Always quoting string-like values and not quoting path-like values
  - But do quote filesystem roots. Even though they're paths, they might
    be very small, good to have quotes to know the start/end
- Capitalise the first word
- Distinguish root vs filesystem root more
2023-11-08 23:59:04 +01:00
Silvan Mosberger
2d28e0cd10 lib.fileset: Remove nixdoc workaround
This problem was fixed in https://github.com/nix-community/nixdoc/pull/81 which is included in version 2.5.1, which is now used in Nixpkgs
2023-11-08 23:28:25 +01:00
Someone Serge
dd8e4b0a02 lib.licenses: nvidia*: add shortName-s 2023-11-08 19:06:44 -03:00
Someone Serge
6cd3e9ce1a cudaPackages: redist components: per-package license url 2023-11-08 19:06:44 -03:00
Someone Serge
6c9c9ef2eb lib.licenses: nvidia*: use same fullNames as conda does 2023-11-08 19:06:44 -03:00
Tyler Benster
75254979ac cudnn_cudatoolkit: add NVIDIA license 2023-11-08 19:06:44 -03:00
Tyler Benster
3d1d5533f8 lib.licenses: add NVIDIA licenses 2023-11-08 19:06:44 -03:00
Silvan Mosberger
e07e80e841 lib.fileset.toSource: Mention fromSource in errors 2023-11-08 21:44:44 +01:00
Silvan Mosberger
73493584a7 lib.fileset.fromSource: init 2023-11-08 21:21:30 +01:00
Silvan Mosberger
f82a1686e6 lib.fileset: Split out internal test helper 2023-11-08 05:18:10 +01:00
Silvan Mosberger
17012aa0d2
Merge pull request #261676 from h7x4/lib-add-replicatestring
lib.strings: add `replicate`
2023-11-07 18:29:31 +01:00
Yueh-Shun Li
6a8b6b8f72 lib.makeOverridable: simplify function arguments preservation
Rename temporary variable copyArgs -> mirrorArgs.
Use lib.mirrorFunctionArgs to define `mirrorArgs`.
Apply mirrorArgs also to the returned function.
2023-11-07 01:58:48 +00:00
Yueh-Shun Li
a16319908e lib.mirrorFunctionArgs: init
Co-authored-by: Silvan Mosberger <github@infinisil.com>
2023-11-07 01:58:04 +00:00
Adam Joseph
8c0416ef36 lib.systems.inspect: add patternLogicalAnd 2023-11-05 00:55:16 +00:00
Artturi
feaa219f39
Merge pull request #265045 from Artturin/addcomment1 2023-11-04 23:00:22 +02:00
Adam Joseph
72c279f477 lib.systems, test.cross.sanity: add test case for #264989
We have several cross-compilation bugs that show up if
hostPlatform!=buildPlatform yet
hostPlatform.config==buildPlatform.config.

These bugs have appeared and disappeared as we've fiddled with the
definition of equality for platform objects.  This commit adds a
clear-cut case where they are *not* equal and never will be, so we
can test it.
2023-11-04 05:57:34 +00:00
Silvan Mosberger
a10c122546
Merge pull request #264892 from tweag/fileset-store-path-rationale
lib.fileset: Add an additional argument in the design docs
2023-11-02 17:51:52 +01:00
Artturin
dd48cb0b34 lib.makeScopeWithSplicing': add comments
I didn't add these arguments, so these comments are from my understading of the arguments.
2023-11-02 17:47:02 +02:00
Silvan Mosberger
2312523ab3 lib.fileset: Add an additional argument in the design docs 2023-11-01 22:38:48 +01:00
Eelco Dolstra
9ec80ed610
Merge pull request #264860 from tweag/filesystem-error-test
lib.filesystem: Don't test Nix-specific error messages
2023-11-01 20:21:44 +01:00
Silvan Mosberger
fc28c5e5b7
Merge pull request #259065 from tweag/fileset.difference
`lib.fileset.difference`: init
2023-11-01 19:40:45 +01:00
Silvan Mosberger
add254658a lib.filesystem: Don't test Nix-specific error messages
In https://github.com/NixOS/nix/pull/9269 the error messages change
which would've broken this test.
2023-11-01 18:56:03 +01:00
h7x4
206d20426c
lib.strings: add replicate
`strings.replicate` returns n copies of a string, concatenated into a new
string

Co-authored-by: Silvan Mosberger <github@infinisil.com>
2023-10-31 20:25:41 +01:00
Alexander Groleau
b7e69faf1d
lib/fixed-points.nix: correct typo
Corrects a minor typo in the description of `fix`; namely that `fix` allows factoring out syntactic recursion from another function.
2023-10-31 11:45:51 -07:00
Silvan Mosberger
e55ee23bf6
Merge pull request #260971 from Gerg-L/getExe
lib.getExe': check arguments
2023-10-31 17:29:15 +01:00
Robert Hensing
1c92b1f03b
Merge pull request #263478 from tweag/fileset/unknown-type-error
`lib.fileset.toSource`: Improve error for unknown file types
2023-10-30 13:14:22 +01:00
Silvan Mosberger
50df7f9775 lib.fileset.difference: init 2023-10-30 12:51:55 +01:00
Silvan Mosberger
47c81d3286 lib.fileset.toSource: Optimise unknown file type error
Compared to the parent commit, this removes any detectable performance
cost :)
2023-10-30 12:48:13 +01:00
Silvan Mosberger
0f6cc8018c lib.fileset.toSource: Improve error for unknown file types
This does decrease performance unfortunately

Benchmarking expression toSource { root = ./.; fileset = ./.; }
Mean CPU time 0.103747 (σ = 0.012415) for 10 runs is 97.32181384964636% (σ = 16.34179537413021%) of the old value 0.106602 (σ = 0.0125571)
Statistic .envs.elements (205920) is 105.5842% (+10891) of the old value 195029
Statistic .gc.totalBytes (20247696) is 101.7495% (+348160) of the old value 19899536
Statistic .nrThunks (134824) is 108.7878% (+10891) of the old value 123933
Statistic .symbols.number (996) is 100.1005% (+1) of the old value 995
Statistic .values.number (275238) is 104.1199% (+10891) of the old value 264347
2023-10-30 12:48:11 +01:00
Silvan Mosberger
88f736f871 lib.fileset.toSource: Test with unknown file type
Currently just throws the Nix error because unknown file types are not
supported by the Nix store, but nothing catches this error earlier (yet,
see next commit)
2023-10-26 01:57:22 +02:00
Silvan Mosberger
7227cb1d73 lib.fileset: Fix shellcheck warnings in tests 2023-10-26 01:51:15 +02:00
John Ericson
791c147cc2
Merge pull request #262838 from amjoseph-nixpkgs/pr/lib/systems/abi-suffix
lib/systems/parse.nix: add removeAbiSuffix, use it
2023-10-25 16:47:31 -04:00
Robert Hensing
185acbce7d
Merge pull request #260265 from tweag/fileset.fileFilter
`lib.fileset.fileFilter`: init
2023-10-24 11:29:57 +02:00
Silvan Mosberger
f4e0043049 lib.fileset.fileFilter: init 2023-10-24 01:44:04 +02:00
Adam Joseph
20b62456f0 lib/systems/parse.nix: add, use removeAbiSuffix
gnu-config will ignore the portion of a triple matching the regex
`e?abi.*$` when determining the validity of a triple.  In other
words, `i386-linuxabichickenlips` is a valid triple.

This commit updates our parsing routines to match gnu-config.

I was recently surprised to discover that it is in fact possible to
shoehorn ABI flavors into nix doubles in a way which preserves their
property of being a (non-canonical) subset of the valid gnu-config
triples.  This commit is required in order to exploit that discovery
to add automatic detection of ILP32 platforms (64-bit void*, 32-bit
int, like the Apple Watch and MIPS n32) to Nix.
2023-10-22 17:05:05 -07:00
Yueh-Shun Li
0695d3e8fe lib.overrideDerivation: inter-link the documentation
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-10-21 16:39:12 +08:00
Yueh-Shun Li
93b8f14a2d doc: lib.customization: add Type and Example tags
Add the "Type:" blocks.
Move the examples below the descriptions whenever possibles
Add "Example:" tags before the examples moved below the descriptions.
2023-10-21 16:39:12 +08:00
Gerg-L
d2161d0632
lib/tests: add tests for getExe' and getExe 2023-10-16 20:29:28 -04:00
Gerg-L
d7c49ca715
lib.getExe': check arguments 2023-10-16 18:52:56 -04:00
Silvan Mosberger
302ec1a3cf
Merge pull request #258866 from schuelermine/mkPackageOptionV4
lib/options: mkPackageOption: document better, add pkgsText and usePname options, refactor
2023-10-16 20:40:48 +02:00
Silvan Mosberger
7247ec07ba lib.fileset: Improved error for unsupported coercion values 2023-10-16 15:50:10 +02:00
Robert Hensing
bb0b182cce
Merge pull request #260535 from hercules-ci/fix-functionArgs-after-makeOverridable
lib.makeOverridable: fix functionArgs on returned function
2023-10-13 15:54:54 +02:00
Silvan Mosberger
b597bff1b6
Merge pull request #242318 from hercules-ci/doc-lib-fix
lib.fix: Improve doc
2023-10-12 19:37:14 +02:00
Silvan Mosberger
b82c1c7b5c lib.fix: Improve doc more
Done together in and after the docs team meeting

Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
2023-10-12 17:38:00 +02:00
Robert Hensing
0a10279342 lib.makeOverridable: fix functionArgs on returned function 2023-10-11 22:56:53 +02:00
Silvan Mosberger
006b28f2a8
Merge pull request #257356 from tweag/fileset.intersect
`lib.fileset.intersection`: init
2023-10-11 17:33:32 +02:00
Silvan Mosberger
389be8db81 lib.fileset: Minor contributor doc adjustments
Co-authored-by: Robert Hensing <robert@roberthensing.nl>
2023-10-11 16:18:00 +02:00
Silvan Mosberger
4ecf025814 lib.fileset.intersection: init 2023-10-11 16:17:48 +02:00
Silvan Mosberger
5323fbf703
Merge pull request #254452 from flyingcircusio/lib-attrsToList
lib.attrsets.attrsToList: add function
2023-10-10 19:49:17 +02:00
Oliver Schmidt
d70633f91c lib.attrsets.attrsToList: add function
For transforming back between lists and attrsets, it makes sense to have
a quasi-inverse of `builtins.listToAttrs` available as a library
function.

Co-authored-by: Silvan Mosberger <github@infinisil.com>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-10-10 16:11:01 +02:00
Anselm Schüler
7e24b3619f
lib/options: refactor mkPackageOption 2023-10-10 13:14:17 +02:00
Anselm Schüler
55ab538abf
lib/tests: add test for pkgsText parameter and package set selection of mkPackageOption 2023-10-10 13:13:38 +02:00
Valentin Gagarin
61fa1255f8 link to documentation on IFD in the Nix manual 2023-10-09 23:57:03 +02:00
Anderson Torres
0de25e25b0 lib: refactor
- rename `(enable|with)Feature(As|)` inputs to more descriptive names
2023-10-09 17:49:02 -03:00
Anselm Schüler
f07537da75
lib/options: add pkgsText parameter to mkPackageOption 2023-10-06 14:08:50 +02:00
Anselm Schüler
d27d38c13a
lib/tests: add more tests for mkPackageOption 2023-10-06 14:08:46 +02:00
Anselm Schüler
19241f5618
lib/options: correct and improve documentation of mkPackageOption 2023-10-06 14:07:06 +02:00
mirrorwitch
7843484dc1 licenses: add Anti-Capitalist Software License v1.4 2023-10-05 19:33:49 +00:00
Silvan Mosberger
2541635c13 lib.fileset: Refactor for performance and future re-use 2023-10-04 23:21:45 +02:00
Silvan Mosberger
5db719f69c
Merge pull request #256417 from tweag/fileset.trace
`lib.fileset.trace`, `lib.fileset.traceVal`: init
2023-10-04 17:39:20 +02:00
Silvan Mosberger
5b4e53a300 lib.fileset: Don't use ulimit for testing tracing 2023-10-04 16:31:14 +02:00
Silvan Mosberger
692b75257e lib.fileset: Refactor inotify testing to be reusable 2023-10-04 16:31:13 +02:00
Silvan Mosberger
5bbe67bf67 lib.fileset: Mention trace functions in the file set evaluation error 2023-10-04 16:31:13 +02:00
Silvan Mosberger
704452f29c lib.fileset.traceVal: init 2023-10-04 16:31:11 +02:00
Silvan Mosberger
467e428f00 lib.fileset.trace: init 2023-10-04 16:30:10 +02:00
Silvan Mosberger
ac2c8d321c lib.fileset: Make expectEqual check more 2023-10-04 16:29:03 +02:00
Silvan Mosberger
efbcf5938f lib.fileset: Add internal helpers for pretty-printing 2023-10-04 16:28:55 +02:00
Ulrik Strid
8d301f41a1
Merge pull request #256411 from wegank/zelus-init
ocamlPackages.zelus{,-gtk}: init at 2.2
2023-10-04 10:30:35 +02:00
Weijia Wang
79dc25b48d licenses: add inria-zelus 2023-10-04 08:47:08 +02:00
Silvan Mosberger
81e8f48ebd
Merge pull request #258855 from tweag/fileset.doc-fix
`lib.fileset.unions`: Fix outdated docs
2023-10-04 01:24:04 +02:00
Silvan Mosberger
d5743d9268 lib.fileset.unions: Fix outdated docs
Since 4f35f003e6 unions supports empty lists too
2023-10-03 21:56:53 +02:00
Silvan Mosberger
86802e19ce lib.fileset: _simplifyTree -> _normaliseTreeFilter 2023-10-03 21:27:42 +02:00
Silvan Mosberger
b3c2281219 lib.fileset: Order noEval last 2023-10-03 21:27:40 +02:00
Silvan Mosberger
43e4d8a6a1 lib.fileset: Link to user documentation from contributor docs 2023-10-03 18:50:18 +02:00
Robert Hensing
812887f16f
Merge pull request #257351 from tweag/fileset.empty
`lib.fileset`: Representation for empty file sets without a base path
2023-10-03 18:26:09 +02:00
Robert Hensing
c0838e12af
Merge pull request #258080 from tweag/fileset/no-ulimit
lib.fileset: Don't use non-reproducible ulimit for stack overflow testing
2023-10-03 18:00:36 +02:00
Silvan Mosberger
4f35f003e6 lib.fileset: Internal representation v3, empty value without a base
`unions []` now works!

Notably the new empty value without a base is not exposed in the interface.
I don't know of any use case for it.
2023-10-03 17:05:57 +02:00
Fabian Affolter
4984613adb
Merge pull request #251812 from LeSuisse/licenses-elv2
lib/licenses: add Elastic License 2.0, drop Elastic License
2023-10-02 22:11:16 +02:00
Ryan Lahfa
37747348cd
Merge pull request #257143 from peat-psuwit/netdata-no-v2-dashboard 2023-10-02 21:01:36 +02:00
Vladimír Čunát
58aa673711
Merge #257338: fdk-aac: fix the license 2023-10-01 18:57:58 +02:00
Artturi
bf25d8782b
Merge pull request #249069 from amjoseph-nixpkgs/pr/lib/systems/ubootArch
lib.systems: add ubootArch
2023-09-30 10:45:36 +03:00
Silvan Mosberger
3cbbea53a1 lib.fileset: Don't use non-reproducible ulimit for stack overflow testing 2023-09-29 20:30:29 +02:00
linsui
a50cea84be lib.gvariant: make the tests really work 2023-09-28 16:30:05 +02:00
Anderson Torres
cc3383d12b lib: add cmakeOptionType, cmakeBool and cmakeFeature 2023-09-27 20:49:38 -03:00
Silvan Mosberger
dd72ff27f7 lib.attrsets.foldlAttrs: Make stricter
See the parent commit for the same change to lib.lists.foldl'
2023-09-27 02:43:59 +02:00
Silvan Mosberger
3b6169f87b lib.lists.foldl': Make strict in the initial accumulator
To maintain backwards compatibility, this can't be changed in the Nix language.
We can however ensure that the version Nixpkgs has the more intuitive behavior.
2023-09-27 02:43:59 +02:00
Silvan Mosberger
857a844ea8 lib.lists.foldl': Redo documentation
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
2023-09-27 02:43:36 +02:00
Silvan Mosberger
9893fee947 lib.lists.foldl': Add tests 2023-09-26 18:55:54 +02:00