John Ericson
7ad16c9d12
Add some docs for the local overlay store
2023-08-03 16:10:32 -04:00
John Ericson
4d99e407fd
Remove FIXME on why something doesn't work
...
I now know it is due to
https://github.com/llvm/llvm-project/issues/64108 . The workaround is
just fine and already in use in this codebase.
2023-08-03 12:12:54 -04:00
John Ericson
4f5b01f5cd
Start to document the local-overlay store
2023-08-03 12:10:13 -04:00
John Ericson
6dc9030606
Merge remote-tracking branch 'upstream/master' into overlayfs-store
2023-08-03 11:53:34 -04:00
Théophane Hufschmitt
635df5ee95
Merge pull request #8774 from NixLayeredStore/experimental-stores
...
Add infra for experimental store implementations
2023-08-03 17:44:10 +02:00
John Ericson
2556c4d753
Rename test group overlay-local-store
-> local-overlay-store
...
Makes it match the store name (`local-overlay`) and experimental feature
name (`local-overlay-store`)._
2023-08-02 20:32:45 -04:00
John Ericson
4b9a621812
Guard the local overlay store behind an experimental feature
2023-08-02 20:30:42 -04:00
John Ericson
3fc838c8a8
Merge remote-tracking branch 'layered-store/experimental-stores' into overlayfs-store
2023-08-02 19:03:34 -04:00
John Ericson
3b592c880a
Add infra for experimental store implemenations
...
This is analogous to that for experimental settings and flags that we
have also added as of late.
2023-08-02 15:46:38 -04:00
John Ericson
6b297e5895
Make verifyAllValidPaths
more functional
...
return map rather than mutate one passed in by reference
2023-08-02 14:38:22 -04:00
John Ericson
73c9fc7ab1
Merge remote-tracking branch 'upstream/master' into overlayfs-store
2023-08-02 14:14:11 -04:00
John Ericson
3723363697
Merge pull request #8765 from NixLayeredStore/refactor-store-verify
...
More cleanups for `LocalStore::verifyPath`
2023-08-02 13:39:29 -04:00
John Ericson
66550878df
Add comment explaining the use of readDirectory(realStoreDir)
2023-08-02 12:46:07 -04:00
John Ericson
770d50e49c
local-store verifying: Rename store
to something more clear
...
It is not a `Store` but a `StorePathSet`.
2023-08-02 12:40:04 -04:00
Eelco Dolstra
d00469ebf9
Merge pull request #8762 from obsidiansystems/split-out-eval-settings
...
Move evaluator settings (type and global) to separate file/header
2023-08-02 16:54:02 +02:00
Eelco Dolstra
eea13d6ac5
Merge pull request #8767 from NixOS/stop-removing-labels
...
labeler: Stop removing labels
2023-08-02 16:51:47 +02:00
Ben Radford
19164cf727
Test that remounting fixes 'stale file handle' errors.
2023-08-01 15:05:33 +01:00
Ben Radford
8225b7a011
Merge branch 'master' into overlayfs-store
2023-08-01 12:52:53 +01:00
Ben Radford
c712369ec5
Document remount-hook store parameter.
2023-08-01 12:48:02 +01:00
Ben Radford
c409a753db
Fix new lines in comment.
2023-08-01 12:48:02 +01:00
Ben Radford
1255866e16
Update src/libstore/local-overlay-store.hh
...
Co-authored-by: John Ericson <git@JohnEricson.me>
2023-08-01 12:48:02 +01:00
Ben Radford
6a8de4c9dc
Avoid enumerating entire overlay store dir upfront.
...
As an optimisation for LocalStore, we read all the store directory entries into
a set. Checking for membership of this set is much faster than a stat syscall.
However for LocalOverlayStore, the lower store directory is expected to contain
a vast number of entries and reading them all can take a very long time.
So instead of enumerating them all upfront, we call pathExists as needed. This
means making stat syscalls for each store path, but the upper layer is expected
to be relatively small compared to the lower store so that should be okay.
2023-08-01 12:48:02 +01:00
Ben Radford
50ce8d15eb
Preparatory refactor of LocalStore::verifyStore.
2023-08-01 12:48:02 +01:00
Robert Hensing
b961541968
labeler: Stop removing labels
...
> Whether or not to remove labels when matching files are reverted or no longer changed by the PR
https://github.com/actions/labeler#inputs
2023-07-31 22:51:06 +02:00
John Ericson
6525265f46
LocalStore::verifyPath
: Try to clarify data flow with more scopes
...
It was initially unclear to me which of these are temporary state for
the verify paths computation, and which of these are the results of that
computation to be used in the rest of the function. Now, it is clear,
and enforced.
2023-07-31 12:44:27 -04:00
John Ericson
2a5f5fbb17
LocalStore::verifyPath
: Use StorePathSet
for store
local var
...
We don't care about non-store-paths in there (things like `.links`, are,
in fact, allowed). So let's just skip them up front and be more strongly
typed.
2023-07-31 12:44:18 -04:00
John Ericson
dcdd5fed74
Merge pull request #8754 from NixLayeredStore/refactor-store-verify
...
Refactor `verifyPath` to take `StorePath` instead of `Path`
2023-07-31 12:01:36 -04:00
Ben Radford
c9a87ce7ca
Refactor verifyPath to take StorePath instead of Path.
...
This way we avoid having to convert from Path to StorePath and vice versa in
the body of verifyPath.
2023-07-31 11:17:55 -04:00
John Ericson
1570e80219
Move evaluator settings (type and global) to separate file/header
2023-07-31 10:14:15 -04:00
Eelco Dolstra
c0e735f474
Merge pull request #8607 from hercules-ci/toJSON-trace
...
toJSON: Add attribute path to trace
2023-07-31 15:02:07 +02:00
Robert Hensing
33d58a90c2
toJSON: Add attribute path to trace
2023-07-31 13:02:54 +02:00
John Ericson
31112fd26f
Merge pull request #10 from NixLayeredStore/delete
...
Fix and test deleting when lower store references
2023-07-26 12:45:30 -04:00
John Ericson
621bdbdb31
Merge branch 'overlayfs-store' into delete
2023-07-26 12:01:08 -04:00
Ben Radford
c2d54496a0
Forgot to check flag and early out.
2023-07-26 16:01:20 +01:00
Ben Radford
3a9fe1a085
Made remountRequired atomic to avoid concurrency issues.
2023-07-26 16:01:20 +01:00
Ben Radford
ca1a108dad
Update tests/overlay-local-store/remount.sh
...
Co-authored-by: John Ericson <git@JohnEricson.me>
2023-07-26 16:01:20 +01:00
Ben Radford
5744a500d6
Use debug instead of writing directly to stderr.
2023-07-26 16:01:20 +01:00
Ben Radford
6da05c0a11
Rename test to delete-duplicate.
2023-07-26 16:01:20 +01:00
Ben Radford
ed14286924
Invoke remount-hook program when necessary.
2023-07-26 16:01:20 +01:00
Ben Radford
33ebae75ca
Reuse deletion logic for optimiseStore and rename method.
2023-07-26 16:01:20 +01:00
Ben Radford
11c493f8fa
Avoid creating whiteout for duplicate store paths.
2023-07-26 16:01:20 +01:00
Ben Radford
cc6f8aa91a
Test that delete works for duplicate file edge case.
2023-07-26 16:01:20 +01:00
Ben Radford
d9688ba708
Add new remount-hook store parameter.
2023-07-26 16:01:20 +01:00
John Ericson
b0877ad3c9
Give test a more specific name
2023-07-26 09:50:31 -04:00
John Ericson
07b34edc44
Fix deletion test
...
Lower layer references are ignored for deleting just in the upper layer.
2023-07-25 18:09:02 -04:00
John Ericson
19c43c5d78
Write test for deleting objects referenced from below
...
Currently fails, as expected.
2023-07-25 18:09:02 -04:00
Alex Ameen
2d1d81114d
Add parseFlakeRef
and flakeRefToString
builtins ( #8670 )
...
Over the last year or so I've run into several use cases where I need to
parse and/or serialize URLs for use by `builtins.fetchTree` or
`builtins.getFlake`, largely in order to produce _lockfile-like_ files
for lang2nix frameworks or tools which use `nix` internally to drive
builds.
I've gone through the painstaking process of emulating
`nix::FlakeRef::fromAttrs` and `nix::parseFlakeRef` several times with
mixed success; but these are difficult to create and even harder to
maintain if I hope to stay aligned with changes to the real
parser/serializer.
I understand why adding new `builtins` isn't something we want to do
flagrantly. I'm recommending this addition simply because I keep
encountering use cases where I need to parse/serialize these URIs in
`nix` expressions, and I want a reliable solution.
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
Co-authored-by: John Ericson <git@JohnEricson.me>
2023-07-25 17:43:33 +00:00
John Ericson
a1a7f3156d
Merge pull request #9 from NixLayeredStore/gc
...
Add a GC test, fix hardlinking issue
2023-07-25 11:44:45 -04:00
John Ericson
484c820c48
Merge pull request #8741 from ncfavier/clarify-rl-notes-nested-attrs-merge
...
doc: clarify release notes about nested attribute merges
2023-07-25 11:11:17 -04:00
John Ericson
9ef0a9e8aa
Fix hard linking issue causing overlay fs copy-ups
2023-07-25 10:28:11 -04:00