summary refs log tree commit diff
path: root/lib/trivial.nix
Commit message (Collapse)AuthorAge
* lib.trivial: Change comment type before concat functionJan Tojnar2022-01-30
| | | | C-style comment was being picked up by nixdoc as a documentation comment for the function.
* lib.checkListOfEnum: initJosé Romildo2022-01-09
|
* lib.throwIfNot: initRobert Hensing2021-12-22
|
* add release notes for 22.05 and update codenameTimothy DeHerrera2021-11-22
|
* lib.warn: Add NIX_ABORT_ON_WARN for call tracesRobert Hensing2021-10-13
|
* lib: fix functionArgs for functorsDavid Arnold2021-08-03
| | | | | | `functionArgs` should give valid results on functions that have been identified with `lib.isFunction` instead of erroring out.
* Merge pull request #110742 from siraben/deprecate-foldBen Siraphob2021-07-27
|\
| * treewide: fold -> foldrBen Siraphob2021-01-26
| |
* | 21.11 is Porcupine!Jonathan Ringer2021-05-22
| |
* | lib.trivial.warnIf: initAlyssa Ross2021-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's a common pattern in Nixpkgs to want to emit a warning in certain cases, but not actually change behaviours. This is often expressed as either if cond then lib.warn "Don't do that thing" x else x Or (if cond then lib.warn "Don't do that thing" else lib.id) x Neither of which really expresses the intent here, because it looks like 'x' is being chosen conditionally. To make this clearer, I introduce a "warnIf" function, which makes it clear that the only thing being affected by the condition is whether the warning is generated, not the value being returned.
* | lib.trivial: fix typo "nixpks" -> "nixpkgs"Alyssa Ross2021-04-05
|/
* lib: add importTOMLzimbatm2020-09-12
| | | | | Complements the `lib.importJSON`. `builtins.readTOML` has been introduced in Nix 2.1.
* 21.03 is OkapiJonathan Ringer2020-09-07
| | | | | * Okapi is an artiodactyl mammal native to Central Africa * https://en.wikipedia.org/wiki/Okapi
* lib: toHex -> toHexString & toBase -> toBaseDigitsBas van Dijk2020-07-20
| | | | This makes the type of these functions more apparent from the name.
* lib: add the toHex and toBase utility functionsBas van Dijk2020-07-20
| | | | | | | | | | | | | | | | | | | | | | | | `toHex` converts the given positive integer to a string of the hexadecimal representation of that integer. For example: ``` toHex 0 => "0" toHex 16 => "10" toHex 250 => "FA" ``` `toBase base i` converts the positive integer `i` to a list of it digits in the given `base`. For example: ``` toBase 10 123 => [ 1 2 3 ] toBase 2 6 => [ 1 1 0 ] toBase 16 250 => [ 15 10 ] ```
* 20.09 is Nightingaleworldofpeace2020-02-10
|
* nixos/version: fix case where .git is a symlinkFranz Pletz2020-01-20
| | | | | | | | | | | Before c9214c394b248e1f26e45dbe1be2bd82363af3a6 and 9d396d2e426b9a765de0b8999aa214f1259633e6 if .git is symlink the version would gracefully default to no git revision. With those changes an exception is thrown instead. This introduces a new function `pathIsGitRepo` that checks if `commitIdFromGitRepo` fails without error so we don't have to reimplement this logic again and can fail gracefully.
* lib.commitIdFromGitRepo: support git-worktreeelseym2020-01-10
| | | | | | | | | | | | | | lib.commitIdFromGitRepo now resolves the refs from the parent repository in case the supplied path is a file containing the path to said repository. this adds support for git-worktree and things alike. see gitrepository-layout(5). this also: - adds a new boolean function lib.pathIsRegularFile to check whether a path is a regular file - patches lib.revisionWithDefault and the revision and versionSuffix attributes in config.system.nixos in order to support git-worktrees
* lib/trivial: add `pipe` functionProfpatsch2019-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | `pipe` is a useful operator for creating pipelines of functions. It works around the usual problem of e.g. string operations becoming deeply nested functions. In principle, there are four different ways this function could be written: pipe val [ f1 .. fn ] pipe val [ fn .. f1 ] compose [ f1 .. fn ] val compose [ fn .. f1 ] val The third and fourth form mirror composition of functions, they would be the same as e.g. `(f1 << f2 << f3 .. << fn) val`. However, it is not clear which direction the list should have (as one can see in the second form, which is the most absurd. In order not to confuse users, we decide for the most “intuitive” form, which mirrors the way unix pipes work (thus the name `pipe`). The flow of data goes from left to right. Co-Authored-By: Silvan Mosberger <infinisil@icloud.com>
* 20.03 is MarkhorSamuel Leathers2019-09-09
| | | | | * Markhor is a spiral horned animal that is on the endangered species list * https://en.wikipedia.org/wiki/Markhor
* treewide: Remove usage of isNullDaniel Schaefer2019-04-29
| | | | isNull "is deprecated; just write e == null instead" says the Nix manual
* lib: add `showWarnings`Jan Malakhovski2019-03-08
|
* 19.09 is Loris.Linus Heckemann2019-02-25
| | | | https://en.wikipedia.org/wiki/Loris
* group the release infozimbatm2018-11-15
| | | | | this makes the codename globally accessible in the repo. The release is not only for NixOS anymore.
* 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