about summary refs log tree commit diff
path: root/lib/fileset
Commit message (Collapse)AuthorAge
* lib.fileset: Fix tests on Darwin, more POSIXSilvan Mosberger2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* lib.fileset.toList: initSilvan Mosberger2024-02-26
|
* lib.fileset.gitTracked: Allow clones of shallow repositoriesibbem2024-02-01
| | | | | | | | | | The only reason shallow clones are not the default in `builtins.fetchGit` is that `revCount` can't be provided when cloning a shallow repository. However, `revCount` isn't used or exposed by `lib.fileset`. Hence, allowing cloning shallow repositories makes `gitTracked` more general without any drawbacks. Co-authored-by: Silvan Mosberger <github@infinisil.com>
* Remove --simulate-pure-evalSilvan Mosberger2023-12-19
|
* lib.fileset.gitTracked: Support out-of-tree buildsSilvan Mosberger2023-12-19
|
* lib.fileset.fetchGit: RefactoringSilvan Mosberger2023-12-19
|
* lib.fileset.gitTracked: Improve error when passing filesSilvan Mosberger2023-12-11
|
* lib.fileset: Refactor gitTracked and gitTrackedWithSilvan Mosberger2023-12-11
| | | | | Introduce an internal function for them to share more behavior. This makes future changes easier.
* Merge pull request #266362 from tweag/fileset.fileFilter-extSilvan Mosberger2023-11-24
|\ | | | | `lib.fileset.fileFilter`: Predicate attribute for file extension
| * lib.fileset.fileFilter: Predicate attribute for file extensionSilvan Mosberger2023-11-23
| |
* | lib.fileset: Document decision for strict existence checksSilvan Mosberger2023-11-22
| | | | | | | | Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
* | lib.fileset.maybeMissing: initSilvan Mosberger2023-11-20
|/
* lib.fileset: Re-order to match reference overviewSilvan Mosberger2023-11-19
|
* lib.fileset: Add overview section to reference docsSilvan Mosberger2023-11-19
|
* Merge pull request #268520 from tweag/fileset-minor-changesSilvan Mosberger2023-11-19
|\ | | | | `lib.fileset`: Minor changes
| * lib.fileset: Minor changesSilvan Mosberger2023-11-19
| | | | | | | | | | | | | | - Make fromSource's missing file error message more consistent with others, and add a test for it - Indent some function arguments - Fix an internal type
* | lib.fileset: Move introduction section above the functionsSilvan Mosberger2023-11-19
|/ | | | | | Previously the introductory section and the function listings were in different places. But now nixdoc supports having them together with https://github.com/nix-community/nixdoc/pull/70!
* lib.fileset.gitTracked: Better error in pure evalSilvan Mosberger2023-11-16
|
* lib.fileset.gitTrackedWith: Introduce recurseSubmodules parameterSilvan Mosberger2023-11-16
|
* lib.fileset.gitTracked/gitTrackedWith: initSilvan Mosberger2023-11-16
| | | | | A configuration parameter for gitTrackedWith will be introduced in the next commit
* lib.fileset.fileFilter: Restrict second argument to pathsSilvan Mosberger2023-11-15
| | | | | | | | While this change is backwards-incompatible, I think it's okay because: - The `fileFilter` function is not yet in a stable NixOS release, it was only merged about [a month ago](https://github.com/NixOS/nixpkgs/pull/257356). - All public uses of the function on GitHub only pass a path - Any `fileFilter pred fileset` can also be expressed as `intersection fileset (fileFilter pred path)` without loss of functionality. - This is furthermore pointed out in the new error message when a file set is passed
* Merge pull request #267381 from tweag/fileset.fileFilter-pathSilvan Mosberger2023-11-15
|\ | | | | `fileset.fileFilter`: Don't run predicate unnecessarily
| * lib.fileset.fileFilter: Don't run predicate unnecessarilySilvan Mosberger2023-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: nix-repl> fileset.trace (fileset.fileFilter (file: builtins.trace file.name false) ./default.nix) trace: README.md trace: benchmark.sh trace: default.nix trace: internal.nix trace: mock-splitRoot.nix trace: tests.sh After: nix-repl> fileset.trace (fileset.fileFilter (file: builtins.trace file.name false) ./default.nix) trace: default.nix
| * lib.fileset.fileFilter: Minor cleanups and more testsSilvan Mosberger2023-11-14
| |
* | lib.fileset: Very minor changesSilvan Mosberger2023-11-13
| |
* | Merge pull request #261732 from tweag/fileset.fromSourceRobert Hensing2023-11-10
|\ \ | |/ |/| `lib.fileset.fromSource`: init
| * lib.fileset.toSource: Mention fromSource in errorsSilvan Mosberger2023-11-08
| |
| * lib.fileset.fromSource: initSilvan Mosberger2023-11-08
| |
| * lib.fileset: Split out internal test helperSilvan Mosberger2023-11-08
| |
* | lib.fileset: Remove unused bindingsSilvan Mosberger2023-11-09
| | | | | | | | Thanks nixd!
* | lib.fileset: Make error messages more uniformSilvan Mosberger2023-11-08
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | lib.fileset: Remove nixdoc workaroundSilvan Mosberger2023-11-08
| | | | | | | | 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
* | lib.fileset: Add an additional argument in the design docsSilvan Mosberger2023-11-01
| |
* | Merge pull request #259065 from tweag/fileset.differenceSilvan Mosberger2023-11-01
|\ \ | | | | | | `lib.fileset.difference`: init
| * | lib.fileset.difference: initSilvan Mosberger2023-10-30
| | |
* | | lib.fileset.toSource: Optimise unknown file type errorSilvan Mosberger2023-10-30
| | | | | | | | | | | | | | | Compared to the parent commit, this removes any detectable performance cost :)
* | | lib.fileset.toSource: Improve error for unknown file typesSilvan Mosberger2023-10-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | lib.fileset.toSource: Test with unknown file typeSilvan Mosberger2023-10-26
| | | | | | | | | | | | | | | | | | 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)
* | | lib.fileset: Fix shellcheck warnings in testsSilvan Mosberger2023-10-26
|/ /
* / lib.fileset.fileFilter: initSilvan Mosberger2023-10-24
|/
* lib.fileset: Improved error for unsupported coercion valuesSilvan Mosberger2023-10-16
|
* Merge pull request #257356 from tweag/fileset.intersectSilvan Mosberger2023-10-11
|\ | | | | `lib.fileset.intersection`: init
| * lib.fileset: Minor contributor doc adjustmentsSilvan Mosberger2023-10-11
| | | | | | | | Co-authored-by: Robert Hensing <robert@roberthensing.nl>
| * lib.fileset.intersection: initSilvan Mosberger2023-10-11
| |
| * lib.fileset: Refactor for performance and future re-useSilvan Mosberger2023-10-04
| |
* | link to documentation on IFD in the Nix manualValentin Gagarin2023-10-09
|/
* Merge pull request #256417 from tweag/fileset.traceSilvan Mosberger2023-10-04
|\ | | | | `lib.fileset.trace`, `lib.fileset.traceVal`: init
| * lib.fileset: Don't use ulimit for testing tracingSilvan Mosberger2023-10-04
| |
| * lib.fileset: Refactor inotify testing to be reusableSilvan Mosberger2023-10-04
| |
| * lib.fileset: Mention trace functions in the file set evaluation errorSilvan Mosberger2023-10-04
| |