summary refs log tree commit diff
path: root/lib/trivial.nix
Commit message (Collapse)AuthorAge
* lib/trivial: Update function comments for doc generationVincent Ambo2018-10-27
| | | | | Expands on some of the function comments and add some of the special syntaxes recognised by nixdoc.
* version.nix: extract revision-fetching functionGraham Christensen2018-10-05
|
* lib: move assertMsg and assertOneOf to their own library fileProfpatsch2018-09-06
| | | | | Since the `assertOneOf` uses `lib.generators`, they are not really trivial anymore and should go into their own library file.
* lib/trivial: add assertOneOfProfpatsch2018-09-06
|
* lib/trivial: add assertMsgProfpatsch2018-09-06
|
* lib/trivial.nix: fix missing parensVladimír Čunát2018-09-03
| | | | | Broken in 62dca7c9a; the tricky thing is that it depends on nix version. Explanation: https://github.com/NixOS/nix/issues/629
* lib/trivial: move zipIntBits to its own fileProfpatsch2018-07-26
| | | | | The amount of implementation detail really should not be the first thing in a prominent file called `trivial.nix`.
* lib/trivial: unify & improve docstringsProfpatsch2018-07-26
| | | | | | | | | - add section headers - unify comment syntax - add examples Tested with: nix-instantiate --strict --eval ./lib/tests/misc.nix
* lib: add float option typeRichard Marko2018-07-03
|
* lib: bitAnd, bitOr, bitXor (bitsize-agnostic fallback function) (#41491)volth2018-06-10
| | | | | | | | | | | | * lib: bitAnd, bitOr, bitXor * lib: test for bitAnd, bitOr, bitXor * lib: bitsize-agnostic zipIntBits * lib: bitNot * lib: bitNot
* Revert "lib: bitAnd, bitOr, bitXor"Profpatsch2018-06-05
|
* lib: bitAnd, bitOr, bitXorvolth2018-06-01
|
* treewide: rename version attributesMaximilian Bosch2018-04-28
| | | | | | | | | | | | | | | As suggested in https://github.com/NixOS/nixpkgs/pull/39416#discussion_r183845745 the versioning attributes in `lib` should be consistent to `nixos/version` which implicates the following changes: * `lib.trivial.version` -> `lib.trivial.release` * `lib.trivial.suffix` -> `lib.trivial.versionSuffix` * `lib.nixpkgsVersion` -> `lib.version` As `lib.nixpkgsVersion` is referenced several times in `NixOS/nixpkgs`, `NixOS/nix` and probably several user's setups. As the rename will cause a notable impact it's better to keep `lib.nixpkgsVersion` as alias with a warning yielded by `builtins.trace`.
* lib: deduplicate version/suffix referencesMaximilian Bosch2018-04-28
| | | | | | The logic regarding the generated `.version-suffix` file is already defined in `lib/trivial.nix` and shouldn't be duplicated in `nixos/version`.
* lib: implement `compare`, `splitByAndCompare`, and `compareLists`Jan Malakhovski2018-02-09
|
* Add setFunctionArgs lib function.Shea Levy2018-01-31
| | | | | | Among other things, this will allow *2nix tools to output plain data while still being composable with the traditional callPackage/.override interfaces.
* Revert "nixos: doc: implement related packages in the manual"Graham Christensen2017-12-23
|
* lib: implement `compare`, `splitByAndCompare`, and `compareLists`Jan Malakhovski2017-12-07
|
* Convert libs to a fixed-pointGraham Christensen2017-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does break the API of being able to import any lib file and get its libs, however I'm not sure people did this. I made this while exploring being able to swap out docFn with a stub in #2305, to avoid functor performance problems. I don't know if that is going to move forward (or if it is a problem or not,) but after doing all this work figured I'd put it up anyway :) Two notable advantages to this approach: 1. when a lib inherits another lib's functions, it doesn't automatically get put in to the scope of lib 2. when a lib implements a new obscure functions, it doesn't automatically get put in to the scope of lib Using the test script (later in this commit) I got the following diff on the API: + diff master fixed-lib 11764a11765,11766 > .types.defaultFunctor > .types.defaultTypeMerge 11774a11777,11778 > .types.isOptionType > .types.isType 11781a11786 > .types.mkOptionType 11788a11794 > .types.setType 11795a11802 > .types.types This means that this commit _adds_ to the API, however I can't find a way to fix these last remaining discrepancies. At least none are _removed_. Test script (run with nix-repl in the PATH): #!/bin/sh set -eux repl() { suff=${1:-} echo "(import ./lib)$suff" \ | nix-repl 2>&1 } attrs_to_check() { repl "${1:-}" \ | tr ';' $'\n' \ | grep "\.\.\." \ | cut -d' ' -f2 \ | sed -e "s/^/${1:-}./" \ | sort } summ() { repl "${1:-}" \ | tr ' ' $'\n' \ | sort \ | uniq } deep_summ() { suff="${1:-}" depth="${2:-4}" depth=$((depth - 1)) summ "$suff" for attr in $(attrs_to_check "$suff" | grep -v "types.types"); do if [ $depth -eq 0 ]; then summ "$attr" | sed -e "s/^/$attr./" else deep_summ "$attr" "$depth" | sed -e "s/^/$attr./" fi done } ( cd nixpkgs #git add . #git commit -m "Auto-commit, sorry" || true git checkout fixed-lib deep_summ > ../fixed-lib git checkout master deep_summ > ../master ) if diff master fixed-lib; then echo "SHALLOW MATCH!" fi ( cd nixpkgs git checkout fixed-lib repl .types )
* Add lib.mod: integer modulusDomen Kožar2017-08-30
|
* lib: Move fixed-point combinators out of trivialJohn Ericson2017-05-29
| | | | | Trivia != prelude. This is a better organized and less likely to scare off new contributors.
* Merge pull request #24835 from Profpatsch/lib-doc-improvementsJörg Thalheim2017-05-05
|\ | | | | Lib doc improvements
| * lib/trivial.nix: add type for fixProfpatsch2017-04-18
| |
* | Merge pull request #25201 from ebzzry/fix-typoPeter Simons2017-04-25
|\ \ | |/ |/| Fix typo in trivial.nix
| * Fix typo in trivial.nixRommel Martinez2017-04-25
| |
* | Merge pull request #24974 from Ericson2314/mapNullableJohn Ericson2017-04-17
|\ \ | |/ |/| Introduce `mapNullable` into lib and use it in a few places
| * Introduce `mapNullable` into lib and use it in a few placesJohn Ericson2017-04-17
| | | | | | | | Also simply some configure flag logic my grep also alerted me too.
* | Merge: fixup a bad mergeVladimír Čunát2017-04-14
|\ \ | | | | | | | | | | | | For details see: https://github.com/NixOS/nixpkgs/commit/24444513fb5#commitcomment-21767916
* \ \ Merge branch 'staging'Vladimír Čunát2017-04-14
|\ \ \ | | |/ | |/|
* | | treewide: use boolToString functionFranz Pletz2017-04-11
| |/ |/|
* | lib: Add composeExtensions for composing extension functionsShea Levy2017-04-07
|/
* lib/trivial: expand function docsProfpatsch2017-03-15
|
* Excise use of importJSONEelco Dolstra2017-01-30
| | | | | | | | Putting information in external JSON files is IMHO not an improvement over the idiomatic style of Nix expressions. The use of JSON doesn't add anything over Nix expressions (in fact it removes expressive power). And scattering package info over lots of little files makes packages less readable over having the info in one file.
* Remove fetchMD5warnEelco Dolstra2016-11-30
| | | | | | | | Deprecation warnings should not be used in Nixpkgs because they spam innocent "nix-env -qa" users with (in this case) dozens of messages that they can't do anything about. This also reverts commit 2ca883338389b7ab995924a0cab0211993bdf1da.
* Merge pull request #19496 from Ericson2314/overridePackagesCharles Strahan2016-10-26
|\ | | | | Make `overridePackages` extend rather than replace existing overrides
| * top-level: Make `overridePackages` extend rather than replace existing overridesJohn Ericson2016-10-13
| |
* | fetchMD5warn: use INFO, maybe Hydra will like this moreMichael Raskin2016-10-12
|/
* nixos: make it easy to apply kernel patchesCharles Strahan2016-10-11
| | | | | | | | | | | | | | | | | | | | This makes it easy to specify kernel patches: boot.kernelPatches = [ pkgs.kernelPatches.ubuntu_fan_4_4 ]; To make the `boot.kernelPatches` option possible, this also makes it easy to extend and/or modify the kernel packages within a linuxPackages set. For example: pkgs.linuxPackages.extend (self: super: { kernel = super.kernel.override { kernelPatches = super.kernel.kernelPatches ++ [ pkgs.kernelPatches.ubuntu_fan_4_4 ]; }; }); Closes #15095
* fetch*: print a trace warning about md5 deprecationMichael Raskin2016-10-09
|
* lib.{warn, info}: add simple helpersDan Peebles2016-08-15
| | | See also https://github.com/NixOS/nix/issues/749.
* treewide: change $IN_NIX_SHELL handlingVladimír Čunát2016-08-11
| | | | | ... to be compatible with https://github.com/NixOS/nix/pull/933 while not breaking compatibility with current nix.
* lib: refactor nixpkgsVersion with fileContentsEric Sagnes2016-08-01
|
* lib.trivial: add a new importJSON functionzimbatm2016-02-29
| | | | | | This is meant to be used by packages who often re-generate their inputs. Producing valid JSON is easier than nix, and also garantees it's purity.
* lib/trivial.nix: improve spellingPeter Simons2015-11-25
|
* lib: document fix and add fix', extends functionsPeter Simons2015-11-24
| | | | | These functions used to live in pkgs/development/haskell-modules/default.nix, but they are generic, really, and should be easily accessible to everyone.
* Rename misc.nix -> deprecated.nixEelco Dolstra2015-07-23
|
* Use builtin seq/deepSeqEelco Dolstra2015-03-20
|
* Automatically set nix.nrBuildUsers to at least nix.maxJobsEelco Dolstra2015-02-16
|
* Add a global variable ‘inNixShell’Eelco Dolstra2014-02-19
| | | | | | | | | | This is primarily useful in Nix expressions that are also intended to be used by nix-shell. It allows saying things like: buildInputs = [ ... ] ++ (if inNixShell then [ emacs ] else [ ]); This should not be used in Nixpkgs (since the question of what constitutes a useful nix-shell environment is very subjective).
* Add a constant ‘nixpkgsVersion’Eelco Dolstra2014-02-19
| | | | | | | | This makes it a bit easier to find out the current Nixpkgs version, e.g. $ nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion "14.02.35657.66f51a9"