-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lazy trees #6530
Draft
edolstra
wants to merge
402
commits into
NixOS:master
Choose a base branch
from
edolstra:lazy-trees
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,363
−364
Draft
Lazy trees #6530
Changes from 1 commit
Commits
Show all changes
402 commits
Select commit
Hold shift + click to select a range
120bec5
GitInputScheme: Do not record 'ref' for dirty trees
edolstra 8a43eaa
GitInputScheme: Add some progress indication
edolstra 7c1bdff
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra c0dd35a
ZipInputAccessor: Improve error messages
edolstra 2d5cfca
Fix accessing 'toString path'
edolstra 3667cf5
Whitespace
edolstra b293b33
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 48a5879
Decode virtual paths in user-thrown errors
edolstra 1b8065f
posToXML(): Fix displaying paths
edolstra 85c1959
Remove some FIXMEs
edolstra 432a3a1
Move isUri() and resolveUri() out of filetransfer.cc
edolstra 2a1c63c
Support flake references in the old CLI
edolstra 28b62dd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra a291e37
Improve error messages from call-flake.nix
edolstra c3c0682
Don't show "from call site" when we don't know the call site
edolstra cbade16
Handle unlocked overriden inputs
edolstra 241dd54
warnOnce(): Fix boost exception when the message contains a format ch…
edolstra 5c8d67d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 0286edb
Format GitHub paths as URLs
edolstra 1483c56
Patch libzip to return timestamps in the Unix epoch
edolstra 7317196
Input::getAccessor(): Get the fingerprint from the final accessor
edolstra 5115909
Fix handling of relative paths
edolstra 12dd8d4
Fix 'nix-instantiate --find-file' and add a test
edolstra e2353b9
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 0402dd0
Interpret absolute paths relative to the root FS rather than the curr…
edolstra 1683872
Use __nix_virtual__ instead of __virtual__
edolstra e424a8b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra a653e98
Encode virtual paths as /nix/store/virtual000<N>
edolstra f02da62
builtins.trace: Decode virtual paths
edolstra b275aa4
Don't use warnOnce() for the toString warning
edolstra 8342317
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 4072024
GitArchiveInputScheme: Bring back the narHash attribute
edolstra 64a69b4
Fix dirOf on the root of a flake
edolstra 561440b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra b27cd88
Partially revert "Format GitHub paths as URLs"
edolstra 515b908
Fix decoding virtual paths that are at the root of the tree
edolstra 39a783f
Require flakes for the -I flake:... feature
edolstra 116acc1
Fix readDir for accessors whose readDirectory doesn't return types
edolstra fcdca3d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 730f6bf
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 57397a3
Formatting
edolstra d162222
Remove test for .path in nix flake metadata
edolstra 6d104bb
Don't allow appending a non-absolute path to the root of a source tree
edolstra f620184
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra d950e3a
Improve error message when flake.nix exists but is not under Git control
edolstra 12c554a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra a322306
For backward compatibility, allow appending non-root paths to the roo…
edolstra d8620d7
Append a slash in ./${"foo"}
edolstra 8becbb0
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 3bcaa7d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 210cd8c
Merge toDerivations() into toDerivedPaths()
edolstra 81a4516
InstallableFlake::toDerivedPaths(): Support paths and store paths
edolstra 880a72b
nix build --json: Only show non-zero startTime / stopTime
edolstra 15d2e0e
Merge remote-tracking branch 'origin/master' into tmp
edolstra b48e641
Add builtins.filterPath
edolstra 5e3cd3e
Fix FilteringInputAccessor::pathExists()
edolstra 29dff7e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 20a0a74
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra fa5af1e
Fix support for relative non-flake inputs (path:./bla)
edolstra 9286b1a
Split GitInputScheme::getAccessor() more
edolstra 9512afa
Typo
edolstra 3621d07
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 3522978
Fix tests
edolstra f4f0f8a
Remove toString deprecation warning
edolstra 37b4a9e
Shut up a gcc warning
edolstra 31bb875
Use libgit2 to provide direct access to Git repositories
edolstra aaf8b1b
Use C++20
edolstra b14830b
TarArchive: Remove a duplicate constant and increase the buffer size
edolstra 5c29abc
GitArchiveInputScheme: Revert to downloading tarballs
edolstra 4142982
Remove ZipInputAccessor
edolstra ca26ce9
Check tarball cache validity
edolstra 219510b
GitArchiveInputScheme: Verify the locked tree hash
edolstra 7b1cda9
GitArchiveInputScheme: Restore the lastModified attribute
edolstra 00b746d
Warn if the computed tree hash differs from the one reported by GitHub
edolstra bb421ac
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 12f1413
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 02d5c54
Fix clang build
edolstra 26ff9c1
Revert "Shut up a gcc warning"
edolstra f4009fd
Don't use std::span just yet
edolstra ece20d5
GitInputAccessor: Support symlinks
edolstra 5d1e5a0
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra c8f7ca2
Fix addErrorContext
edolstra 273df09
Remove unused file
edolstra 21f0a98
Remove unnecessary -lgit2
edolstra 03618bb
Fix GitHub test
edolstra 56a845d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 98a90cc
Use libgit2 to get the revCount
edolstra 430bfcf
Use libgit2 to get lastModified
edolstra 13e8d70
Use libgit2 for getting isShallow
edolstra 23806db
Use libgit2 to resolve references to commit hashes
edolstra ab2b0fb
Add a helper class to avoid leaking libgit2 objects
edolstra 8c8f242
Handle revisions used as refs for compatibility
edolstra 579ecd3
Remove a test for the non-presence of git
edolstra 1b0b3b1
Add git_oid -> Hash conversion
edolstra 834d878
Use libgit2 to get workdir info
edolstra 1017b11
Remove dead code
edolstra 86ca2c5
Use libgit2 to create the local cache repos
edolstra e952d36
Refactor
edolstra d6cdb07
Rename
edolstra 334348f
Remove use of git cat-file
edolstra 733861d
Support allRefs in git URLs
edolstra 3a1a33d
Use libgit2 for fetching repos
edolstra b19534a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 854a311
Fix appending an empty string to a path
edolstra b8218b5
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra f21e1cf
Fix outPath in flakes
edolstra aa823c2
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra d7d49fd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra bb72d1b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 6192fd0
Fix some clang errors/warnings
edolstra 4f1b0d7
Fix clang compilation
edolstra cdb946e
Fix test regression
edolstra 7052e19
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 2f1a90b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 0671807
Fix makefile
edolstra b2a205e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra ccd2ad2
Remove git caching
edolstra 2a4462e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra f432967
Use libgit2 for getting the HEAD ref of local repos
edolstra f23b969
Check git_remote_fetch() return value
edolstra 2ffa909
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 4b9215c
Handle patches that have a timestamp after the filename
edolstra 9a15ec8
Indentation
edolstra 870e750
Fix root/overriden flakes with dir attribute
edolstra 64b9e50
Add CanonPath::makeRelative()
edolstra 2154084
Allow patches to be applied to flake inputs
edolstra a0b0cac
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra a1501cf
EvalState::rootPath(): Take a CanonPath
edolstra 8ee59d7
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 791e222
Fix tests
edolstra 5b2be3a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 0dfc214
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 91aefbd
Factor out FilteringInputAccessor
edolstra d102273
Fix clang compilation
edolstra 39079dd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 2b9ded5
Fix parsing of relative flake inputs without 'path:'
edolstra a9d4780
Revert to using git for fetching remote git repos
edolstra 2dc2f58
Log git fetch errors
edolstra ac73702
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 3c4d678
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra e59caad
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 2f18e78
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra f355c34
Fix handling of relative path flakes (and add some tests)
edolstra 56272db
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 3494c29
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 4e16d5e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 6b70509
Remove dead code
edolstra eaa785e
Improve error message
edolstra ea5c2e3
Tarball fetcher: Use the tarball cache
edolstra b219d76
Tarball cache: Add cache entries for all URLs in the redirect chain
edolstra 0e48afb
Remove the "facts" cache
edolstra 0b72b31
Remove debug statement
edolstra 6513f69
Fix lastModified handling
edolstra 94c028f
Fix file:// URLs
edolstra e350f84
Remove bad.tar.xz check, since libarchive doesn't care
edolstra fa8618f
Eliminate old downloadTarball()
edolstra 144987e
Revert cache version
edolstra 6a95ff9
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra b4df104
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 601de7f
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra c677ea7
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra aa85359
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra ddca787
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra ec272de
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra b39148e
Post-merge cleanup
edolstra 3099b51
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 0aa13b6
Cleanup
edolstra be1543e
Merge remote-tracking branch 'upstream/master' into lazy-trees
Ericson2314 653c100
Merge remote-tracking branch 'upstream/master' into lazy-trees
Ericson2314 575902b
Merge remote-tracking branch 'upstream/master' into lazy-trees
Ericson2314 d38f4d9
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra dab2be3
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 2055e28
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra c0b1df7
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 748567b
Doxygen
edolstra 5558d65
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra d022bce
FileInputScheme: Display path properly
edolstra 7eb3ba0
PosixSourceAccessor: Support roots that are not directories
edolstra d9cfae2
Cleanup
edolstra 43de535
Remove unnecessary pointer
edolstra 0d02a63
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra d2292a1
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra edcd6ce
Merge remote-tracking branch 'origin/master' into lazy-trees
9999years 793a838
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 1c56bdd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 49f9099
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra ce23764
Remove duplicate comment
edolstra 3369a81
EvalState::findFile(): Resolve symlinks
edolstra 3f70f20
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 1abf058
Merge remote-tracking branch 'upstream/master' into lazy-trees
roberth 147593d
tests/libexpr: Re-enable C api tests that build
roberth c6b4f01
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra cf02c6a
Fix test
edolstra 4a9b7c8
Fix pre-commit check
edolstra 0efcbbf
Run the flake-regressions test suite
edolstra c4cd4cd
Hack
edolstra 93cf285
PathInputScheme: Improve path display
edolstra 2fec506
BasicDerivation: Add applyRewrites() method
edolstra 5ddd8e4
Introduce a new string context for representing paths
edolstra 1302bfa
Re-enable some tests
edolstra 9c10fcf
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 71575a2
Debug
edolstra 333d35a
callPathFilter(): Pass a lazy store path
edolstra 0950094
Fix fileset compatibility
edolstra 2101916
Test baseNameOf behaviour on the root of a flake
edolstra fc4d948
Cleanup
edolstra db6c219
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra a65c8a9
Debug
edolstra c5ae41d
Copy roots to the store as /nix/store/<hash1>-<hash2>-source
edolstra ea54be0
filterPath: Ensure /nix/store/<hash>-<hash>-source
edolstra a435a40
Disable some GitHub narHash related tests for now
edolstra 7332321
Run more flake regression tests
edolstra 299d0b7
TarballInputScheme: Fix fetchToStore() caching
edolstra 3a96ba0
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 25635e5
EvalState: Rename decodePaths() -> prettyPrintPaths()
edolstra b5be3b0
Pretty-print virtual paths in more contexts
edolstra 2409e6b
Add tests for tree laziness
edolstra 44d20c3
Warn against use of `toString ./path` as a derivation attribute
edolstra 4133514
Remove unused
edolstra 2cb003c
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 8fc36e2
Fix concatenating to an attrset
edolstra bcb1be4
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra f0cf5d8
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra a123f87
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 26f1431
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra b7255f8
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 584fece
flake-regressions.sh: Make the sort order deterministic
edolstra 4d39908
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra e255be6
builtins.toPath: Rewrite virtual paths
edolstra a33aad3
Use fetchToStore() instead of computeStorePath()
edolstra 35bbd85
Warn about double copies
edolstra b6be10d
Skip a broken test
edolstra 57e1692
Backwards compatibility hack to handle `/. + path`
edolstra 57b2cc2
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 1b20945
Formatting
edolstra 53fabdc
Busywork
edolstra 34e4a61
Merge branch 'master' into lazy-trees
Ericson2314 0d3a157
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 800bc9c
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 9ed105a
Remove unused file
edolstra 2ab5278
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 879f6b6
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 355cb56
Reduce diff
edolstra 250813a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 280e39b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 1374d16
Enable some tests disabled in the Meson switch
edolstra f310fbb
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 605a1f3
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra 763cbf0
Merge remote-tracking branch 'upstream/master' into HEAD
roberth 4952b1d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Merge remote-tracking branch 'origin/master' into lazy-trees
commit 2ab52782bbcaefd276b6b0cf998b8180fd46b624
There are no files selected for viewing
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Another very general issue: There's 4 different results you can get when printing lazy paths from this PR:
Paths were already hard to understand, but this makes it even more confusing. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
You are viewing a condensed version of this merge commit. You can view the full changes here.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found another issue when using
fetchGit
with an empty repository: