Skip to content
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
wants to merge 390 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
390 commits
Select commit Hold shift + click to select a range
37d859b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Aug 19, 2022
a115c4f
GitHub fetcher: Restore the lastModified field
edolstra Aug 22, 2022
91aea15
Fix macOS build, where le32toh is not available
edolstra Aug 22, 2022
13c0db4
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Aug 25, 2022
def7b25
readLittleEndian(): Fix 64-bit integer truncation
edolstra Aug 26, 2022
034340a
Fix potential duplicate activity IDs in forked child processes
edolstra Aug 26, 2022
f95c425
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Aug 29, 2022
30be644
Make EvalState::inputAccessors keyed by the accessor number
edolstra Aug 29, 2022
7da3a30
Remove no_pos_tag
edolstra Aug 29, 2022
301f388
Remove FIXME
edolstra Aug 29, 2022
440214f
ZipInputAccessor: Fix invalid read
edolstra Aug 30, 2022
89f1021
Improve display of Git inputs
edolstra Aug 31, 2022
120bec5
GitInputScheme: Do not record 'ref' for dirty trees
edolstra Aug 31, 2022
8a43eaa
GitInputScheme: Add some progress indication
edolstra Aug 31, 2022
7c1bdff
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Sep 2, 2022
c0dd35a
ZipInputAccessor: Improve error messages
edolstra Sep 2, 2022
2d5cfca
Fix accessing 'toString path'
edolstra Sep 2, 2022
3667cf5
Whitespace
edolstra Sep 12, 2022
b293b33
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Sep 12, 2022
48a5879
Decode virtual paths in user-thrown errors
edolstra Sep 12, 2022
1b8065f
posToXML(): Fix displaying paths
edolstra Sep 12, 2022
85c1959
Remove some FIXMEs
edolstra Sep 12, 2022
432a3a1
Move isUri() and resolveUri() out of filetransfer.cc
edolstra Sep 12, 2022
2a1c63c
Support flake references in the old CLI
edolstra Sep 13, 2022
28b62dd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Sep 28, 2022
a291e37
Improve error messages from call-flake.nix
edolstra Sep 28, 2022
c3c0682
Don't show "from call site" when we don't know the call site
edolstra Sep 28, 2022
cbade16
Handle unlocked overriden inputs
edolstra Sep 29, 2022
241dd54
warnOnce(): Fix boost exception when the message contains a format ch…
edolstra Sep 30, 2022
5c8d67d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 10, 2022
0286edb
Format GitHub paths as URLs
edolstra Oct 10, 2022
1483c56
Patch libzip to return timestamps in the Unix epoch
edolstra Oct 10, 2022
7317196
Input::getAccessor(): Get the fingerprint from the final accessor
edolstra Oct 10, 2022
5115909
Fix handling of relative paths
edolstra Oct 10, 2022
12dd8d4
Fix 'nix-instantiate --find-file' and add a test
edolstra Oct 12, 2022
e2353b9
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 26, 2022
0402dd0
Interpret absolute paths relative to the root FS rather than the curr…
edolstra Oct 26, 2022
1683872
Use __nix_virtual__ instead of __virtual__
edolstra Oct 26, 2022
e424a8b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 27, 2022
a653e98
Encode virtual paths as /nix/store/virtual000<N>
edolstra Oct 27, 2022
f02da62
builtins.trace: Decode virtual paths
edolstra Oct 28, 2022
b275aa4
Don't use warnOnce() for the toString warning
edolstra Oct 28, 2022
8342317
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Nov 2, 2022
4072024
GitArchiveInputScheme: Bring back the narHash attribute
edolstra Nov 3, 2022
64a69b4
Fix dirOf on the root of a flake
edolstra Nov 16, 2022
561440b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Nov 16, 2022
b27cd88
Partially revert "Format GitHub paths as URLs"
edolstra Nov 25, 2022
515b908
Fix decoding virtual paths that are at the root of the tree
edolstra Nov 25, 2022
39a783f
Require flakes for the -I flake:... feature
edolstra Dec 1, 2022
116acc1
Fix readDir for accessors whose readDirectory doesn't return types
edolstra Dec 2, 2022
fcdca3d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 5, 2022
730f6bf
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 7, 2022
57397a3
Formatting
edolstra Dec 7, 2022
d162222
Remove test for .path in nix flake metadata
edolstra Dec 7, 2022
6d104bb
Don't allow appending a non-absolute path to the root of a source tree
edolstra Dec 8, 2022
f620184
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 9, 2022
d950e3a
Improve error message when flake.nix exists but is not under Git control
edolstra Dec 9, 2022
12c554a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 12, 2022
a322306
For backward compatibility, allow appending non-root paths to the roo…
edolstra Dec 14, 2022
d8620d7
Append a slash in ./${"foo"}
edolstra Dec 14, 2022
8becbb0
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 14, 2022
3bcaa7d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 15, 2022
210cd8c
Merge toDerivations() into toDerivedPaths()
edolstra Dec 15, 2022
81a4516
InstallableFlake::toDerivedPaths(): Support paths and store paths
edolstra Dec 15, 2022
880a72b
nix build --json: Only show non-zero startTime / stopTime
edolstra Dec 16, 2022
15d2e0e
Merge remote-tracking branch 'origin/master' into tmp
edolstra Dec 20, 2022
b48e641
Add builtins.filterPath
edolstra Dec 19, 2022
5e3cd3e
Fix FilteringInputAccessor::pathExists()
edolstra Dec 21, 2022
29dff7e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jan 11, 2023
20a0a74
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jan 12, 2023
fa5af1e
Fix support for relative non-flake inputs (path:./bla)
edolstra Jan 12, 2023
9286b1a
Split GitInputScheme::getAccessor() more
edolstra Jan 20, 2023
9512afa
Typo
edolstra Jan 20, 2023
3621d07
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jan 26, 2023
3522978
Fix tests
edolstra Jan 26, 2023
f4f0f8a
Remove toString deprecation warning
edolstra Jan 26, 2023
37b4a9e
Shut up a gcc warning
edolstra Jan 26, 2023
31bb875
Use libgit2 to provide direct access to Git repositories
edolstra Jan 25, 2023
aaf8b1b
Use C++20
edolstra Jan 31, 2023
b14830b
TarArchive: Remove a duplicate constant and increase the buffer size
edolstra Jan 31, 2023
5c29abc
GitArchiveInputScheme: Revert to downloading tarballs
edolstra Jan 31, 2023
4142982
Remove ZipInputAccessor
edolstra Jan 31, 2023
ca26ce9
Check tarball cache validity
edolstra Feb 3, 2023
219510b
GitArchiveInputScheme: Verify the locked tree hash
edolstra Feb 3, 2023
7b1cda9
GitArchiveInputScheme: Restore the lastModified attribute
edolstra Feb 3, 2023
00b746d
Warn if the computed tree hash differs from the one reported by GitHub
edolstra Feb 3, 2023
bb421ac
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 8, 2023
12f1413
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 17, 2023
02d5c54
Fix clang build
edolstra Feb 17, 2023
26ff9c1
Revert "Shut up a gcc warning"
edolstra Feb 17, 2023
f4009fd
Don't use std::span just yet
edolstra Feb 17, 2023
ece20d5
GitInputAccessor: Support symlinks
edolstra Feb 17, 2023
5d1e5a0
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 21, 2023
c8f7ca2
Fix addErrorContext
edolstra Feb 21, 2023
273df09
Remove unused file
edolstra Feb 21, 2023
21f0a98
Remove unnecessary -lgit2
edolstra Feb 21, 2023
03618bb
Fix GitHub test
edolstra Feb 21, 2023
56a845d
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 22, 2023
98a90cc
Use libgit2 to get the revCount
edolstra Feb 24, 2023
430bfcf
Use libgit2 to get lastModified
edolstra Feb 24, 2023
13e8d70
Use libgit2 for getting isShallow
edolstra Feb 24, 2023
23806db
Use libgit2 to resolve references to commit hashes
edolstra Feb 24, 2023
ab2b0fb
Add a helper class to avoid leaking libgit2 objects
edolstra Feb 24, 2023
8c8f242
Handle revisions used as refs for compatibility
edolstra Feb 24, 2023
579ecd3
Remove a test for the non-presence of git
edolstra Feb 24, 2023
1b0b3b1
Add git_oid -> Hash conversion
edolstra Feb 24, 2023
834d878
Use libgit2 to get workdir info
edolstra Mar 1, 2023
1017b11
Remove dead code
edolstra Mar 1, 2023
86ca2c5
Use libgit2 to create the local cache repos
edolstra Mar 1, 2023
e952d36
Refactor
edolstra Mar 1, 2023
d6cdb07
Rename
edolstra Mar 1, 2023
334348f
Remove use of git cat-file
edolstra Mar 1, 2023
733861d
Support allRefs in git URLs
edolstra Mar 2, 2023
3a1a33d
Use libgit2 for fetching repos
edolstra Mar 2, 2023
b19534a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 6, 2023
854a311
Fix appending an empty string to a path
edolstra Mar 6, 2023
b8218b5
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 7, 2023
f21e1cf
Fix outPath in flakes
edolstra Mar 8, 2023
aa823c2
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 8, 2023
d7d49fd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 9, 2023
bb72d1b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 9, 2023
6192fd0
Fix some clang errors/warnings
edolstra Mar 9, 2023
4f1b0d7
Fix clang compilation
edolstra Mar 10, 2023
cdb946e
Fix test regression
edolstra Mar 13, 2023
7052e19
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 15, 2023
2f1a90b
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 16, 2023
0671807
Fix makefile
edolstra Mar 16, 2023
b2a205e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 16, 2023
ccd2ad2
Remove git caching
edolstra Mar 17, 2023
2a4462e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 17, 2023
f432967
Use libgit2 for getting the HEAD ref of local repos
edolstra Mar 20, 2023
f23b969
Check git_remote_fetch() return value
edolstra Mar 20, 2023
2ffa909
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 24, 2023
4b9215c
Handle patches that have a timestamp after the filename
edolstra Mar 28, 2023
9a15ec8
Indentation
edolstra Mar 30, 2023
870e750
Fix root/overriden flakes with dir attribute
edolstra Mar 29, 2023
64b9e50
Add CanonPath::makeRelative()
edolstra Mar 30, 2023
2154084
Allow patches to be applied to flake inputs
edolstra Mar 28, 2023
a0b0cac
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 30, 2023
a1501cf
EvalState::rootPath(): Take a CanonPath
edolstra Apr 3, 2023
8ee59d7
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 3, 2023
791e222
Fix tests
edolstra Apr 6, 2023
5b2be3a
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 25, 2023
0dfc214
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 26, 2023
91aefbd
Factor out FilteringInputAccessor
edolstra Apr 26, 2023
d102273
Fix clang compilation
edolstra May 1, 2023
39079dd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 9, 2023
2b9ded5
Fix parsing of relative flake inputs without 'path:'
edolstra May 10, 2023
a9d4780
Revert to using git for fetching remote git repos
edolstra May 11, 2023
2dc2f58
Log git fetch errors
edolstra May 11, 2023
ac73702
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 12, 2023
3c4d678
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jun 2, 2023
e59caad
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jun 19, 2023
2f18e78
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jun 26, 2023
f355c34
Fix handling of relative path flakes (and add some tests)
edolstra Jun 26, 2023
56272db
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Aug 3, 2023
3494c29
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Sep 9, 2023
4e16d5e
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Sep 20, 2023
6b70509
Remove dead code
edolstra Sep 21, 2023
eaa785e
Improve error message
edolstra Sep 22, 2023
ea5c2e3
Tarball fetcher: Use the tarball cache
edolstra Oct 11, 2023
b219d76
Tarball cache: Add cache entries for all URLs in the redirect chain
edolstra Oct 11, 2023
0e48afb
Remove the "facts" cache
edolstra Oct 11, 2023
0b72b31
Remove debug statement
edolstra Oct 12, 2023
6513f69
Fix lastModified handling
edolstra Oct 13, 2023
94c028f
Fix file:https:// URLs
edolstra Oct 13, 2023
e350f84
Remove bad.tar.xz check, since libarchive doesn't care
edolstra Oct 13, 2023
fa8618f
Eliminate old downloadTarball()
edolstra Oct 13, 2023
144987e
Revert cache version
edolstra Oct 13, 2023
6a95ff9
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 13, 2023
b4df104
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 17, 2023
601de7f
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 23, 2023
c677ea7
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Oct 23, 2023
aa85359
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Nov 3, 2023
ddca787
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Nov 20, 2023
ec272de
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Nov 22, 2023
b39148e
Post-merge cleanup
edolstra Nov 22, 2023
3099b51
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Nov 28, 2023
0aa13b6
Cleanup
edolstra Nov 30, 2023
be1543e
Merge remote-tracking branch 'upstream/master' into lazy-trees
Ericson2314 Dec 1, 2023
653c100
Merge remote-tracking branch 'upstream/master' into lazy-trees
Ericson2314 Dec 1, 2023
575902b
Merge remote-tracking branch 'upstream/master' into lazy-trees
Ericson2314 Dec 7, 2023
d38f4d9
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 13, 2023
dab2be3
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 13, 2023
2055e28
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Dec 13, 2023
c0b1df7
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 15, 2024
748567b
Doxygen
edolstra Feb 15, 2024
5558d65
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 19, 2024
d022bce
FileInputScheme: Display path properly
edolstra Feb 19, 2024
7eb3ba0
PosixSourceAccessor: Support roots that are not directories
edolstra Feb 19, 2024
d9cfae2
Cleanup
edolstra Feb 21, 2024
43de535
Remove unnecessary pointer
edolstra Feb 21, 2024
0d02a63
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 21, 2024
d2292a1
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Feb 21, 2024
edcd6ce
Merge remote-tracking branch 'origin/master' into lazy-trees
9999years Mar 1, 2024
793a838
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 4, 2024
1c56bdd
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Mar 7, 2024
49f9099
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 2, 2024
ce23764
Remove duplicate comment
edolstra Apr 2, 2024
3369a81
EvalState::findFile(): Resolve symlinks
edolstra Apr 3, 2024
3f70f20
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 19, 2024
1abf058
Merge remote-tracking branch 'upstream/master' into lazy-trees
roberth Apr 21, 2024
147593d
tests/libexpr: Re-enable C api tests that build
roberth Apr 21, 2024
c6b4f01
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 22, 2024
cf02c6a
Fix test
edolstra Apr 22, 2024
4a9b7c8
Fix pre-commit check
edolstra Apr 22, 2024
0efcbbf
Run the flake-regressions test suite
edolstra Apr 24, 2024
c4cd4cd
Hack
edolstra Apr 24, 2024
93cf285
PathInputScheme: Improve path display
edolstra Apr 25, 2024
2fec506
BasicDerivation: Add applyRewrites() method
edolstra Apr 25, 2024
5ddd8e4
Introduce a new string context for representing paths
edolstra Apr 25, 2024
1302bfa
Re-enable some tests
edolstra Apr 25, 2024
9c10fcf
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 30, 2024
71575a2
Debug
edolstra Apr 30, 2024
333d35a
callPathFilter(): Pass a lazy store path
edolstra Apr 30, 2024
0950094
Fix fileset compatibility
edolstra Apr 30, 2024
2101916
Test baseNameOf behaviour on the root of a flake
edolstra Apr 30, 2024
fc4d948
Cleanup
edolstra Apr 30, 2024
db6c219
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Apr 30, 2024
a65c8a9
Debug
edolstra Apr 30, 2024
c5ae41d
Copy roots to the store as /nix/store/<hash1>-<hash2>-source
edolstra Apr 30, 2024
ea54be0
filterPath: Ensure /nix/store/<hash>-<hash>-source
edolstra Apr 30, 2024
a435a40
Disable some GitHub narHash related tests for now
edolstra Apr 30, 2024
7332321
Run more flake regression tests
edolstra Apr 30, 2024
299d0b7
TarballInputScheme: Fix fetchToStore() caching
edolstra May 3, 2024
3a96ba0
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 6, 2024
25635e5
EvalState: Rename decodePaths() -> prettyPrintPaths()
edolstra May 6, 2024
b5be3b0
Pretty-print virtual paths in more contexts
edolstra May 6, 2024
2409e6b
Add tests for tree laziness
edolstra May 6, 2024
44d20c3
Warn against use of `toString ./path` as a derivation attribute
edolstra May 6, 2024
4133514
Remove unused
edolstra May 6, 2024
2cb003c
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 6, 2024
8fc36e2
Fix concatenating to an attrset
edolstra May 6, 2024
bcb1be4
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 6, 2024
f0cf5d8
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 7, 2024
a123f87
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 8, 2024
26f1431
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 10, 2024
b7255f8
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 13, 2024
584fece
flake-regressions.sh: Make the sort order deterministic
edolstra May 14, 2024
4d39908
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra May 14, 2024
e255be6
builtins.toPath: Rewrite virtual paths
edolstra May 14, 2024
a33aad3
Use fetchToStore() instead of computeStorePath()
edolstra May 14, 2024
35bbd85
Warn about double copies
edolstra May 14, 2024
b6be10d
Skip a broken test
edolstra May 15, 2024
57e1692
Backwards compatibility hack to handle `/. + path`
edolstra May 15, 2024
57b2cc2
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jul 2, 2024
1b20945
Formatting
edolstra Jul 2, 2024
53fabdc
Busywork
edolstra Jul 2, 2024
34e4a61
Merge branch 'master' into lazy-trees
Ericson2314 Jul 5, 2024
0d3a157
Merge remote-tracking branch 'origin/master' into lazy-trees
edolstra Jul 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Prev Previous commit
Next Next commit
Merge remote-tracking branch 'origin/master' into lazy-trees
  • Loading branch information
edolstra committed Feb 15, 2024
commit c0b1df77fb891101b4ac427829733953a9919d37
30 changes: 30 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
BasedOnStyle: LLVM
IndentWidth: 4
BreakBeforeBraces: Custom
BraceWrapping:
AfterStruct: true
AfterClass: true
AfterFunction: true
AfterUnion: true
SplitEmptyRecord: false
PointerAlignment: Middle
FixNamespaceComments: false
SortIncludes: Never
#IndentPPDirectives: BeforeHash
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: false
AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignEscapedNewlines: DontAlign
ColumnLimit: 120
BreakStringLiterals: false
BitFieldColonSpacing: None
AllowShortFunctionsOnASingleLine: Empty
AlwaysBreakTemplateDeclarations: Yes
BinPackParameters: false
BreakConstructorInitializers: BeforeComma
EmptyLineAfterAccessModifier: Leave # change to always/never later?
EmptyLineBeforeAccessModifier: Leave
#PackConstructorInitializers: BinPack
BreakBeforeBinaryOperators: NonAssignment
AlwaysBreakBeforeMultilineStrings: true
3 changes: 3 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# We use pointers to aggregates in a couple of places, intentionally.
# void * would look weird.
Checks: '-bugprone-sizeof-expression'
10 changes: 1 addition & 9 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,8 @@
# This file
.github/CODEOWNERS @edolstra

# Public documentation
/doc @fricklerhandwerk
*.md @fricklerhandwerk

# Documentation of built-in functions
src/libexpr/primops.cc @fricklerhandwerk @roberth
# Documentation on experimental features
src/libutil/experimental-features.cc @fricklerhandwerk
# Documentation on configuration settings
src/libstore/globals.hh @fricklerhandwerk
src/libexpr/primops.cc @roberth

# Libstore layer
/src/libstore @thufschmitt
4 changes: 3 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

<!-- Large change: Provide instructions to reviewers how to read the diff. -->

# Priorities
# Priorities and Process

Add :+1: to [pull requests you find important](https://github.com/NixOS/nix/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc).

The Nix maintainer team uses a [GitHub project board](https://github.com/orgs/NixOS/projects/19) to [schedule and track reviews](https://github.com/NixOS/nix/tree/master/maintainers#project-board-protocol).
2 changes: 1 addition & 1 deletion .github/workflows/backport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
fetch-depth: 0
- name: Create backport PRs
# should be kept in sync with `version`
uses: zeebe-io/backport-action@v2.2.0
uses: zeebe-io/backport-action@v2.4.1
with:
# Config README: https://github.com/zeebe-io/backport-action#backport-action
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v24
- uses: cachix/install-nix-action@v25
with:
# The sandbox would otherwise be disabled by default on Darwin
extra_nix_config: "sandbox = true"
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV
- uses: cachix/cachix-action@v13
- uses: cachix/cachix-action@v14
if: needs.check_secrets.outputs.cachix == 'true'
with:
name: '${{ env.CACHIX_NAME }}'
Expand Down Expand Up @@ -62,10 +62,10 @@ jobs:
with:
fetch-depth: 0
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV
- uses: cachix/install-nix-action@v24
- uses: cachix/install-nix-action@v25
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
- uses: cachix/cachix-action@v13
- uses: cachix/cachix-action@v14
with:
name: '${{ env.CACHIX_NAME }}'
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
Expand All @@ -84,7 +84,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV
- uses: cachix/install-nix-action@v24
- uses: cachix/install-nix-action@v25
with:
install_url: '${{needs.installer.outputs.installerURL}}'
install_options: "--tarball-url-prefix https://${{ env.CACHIX_NAME }}.cachix.org/serve"
Expand Down Expand Up @@ -114,12 +114,12 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v24
- uses: cachix/install-nix-action@v25
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV
- run: echo NIX_VERSION="$(nix --experimental-features 'nix-command flakes' eval .\#default.version | tr -d \")" >> $GITHUB_ENV
- uses: cachix/cachix-action@v13
- uses: cachix/cachix-action@v14
if: needs.check_secrets.outputs.cachix == 'true'
with:
name: '${{ env.CACHIX_NAME }}'
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ perl/Makefile.config
/tests/functional/ca/config.nix
/tests/functional/dyn-drv/config.nix
/tests/functional/repl-result-out
/tests/functional/debugger-test-out
/tests/functional/test-libstoreconsumer/test-libstoreconsumer

# /tests/functional/lang/
Expand Down Expand Up @@ -141,6 +142,7 @@ compile_commands.json
nix-rust/target

result
result-*

# IDE
.vscode/
Expand Down
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.20.0
2.21.0
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Check out the [security policy](https://github.com/NixOS/nix/security/policy).
- Functional tests – [`tests/functional/**.sh`](./tests/functional)
- Unit tests – [`src/*/tests`](./src/)
- Integration tests – [`tests/nixos/*`](./tests/nixos)
- [ ] User documentation in the [manual](..doc/manual/src)
- [ ] User documentation in the [manual](./doc/manual/src)
- [ ] API documentation in header files
- [ ] Code and comments are self-explanatory
- [ ] Commit message explains **why** the change was made
Expand Down
78 changes: 67 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# External build directory support

include mk/build-dir.mk

-include $(buildprefix)Makefile.config
clean-files += $(buildprefix)Makefile.config

# List makefiles

ifeq ($(ENABLE_BUILD), yes)
makefiles = \
mk/precompiled-headers.mk \
Expand All @@ -24,7 +28,7 @@ makefiles = \
misc/upstart/local.mk
endif

ifeq ($(ENABLE_BUILD)_$(ENABLE_TESTS), yes_yes)
ifeq ($(ENABLE_UNIT_TESTS), yes)
makefiles += \
tests/unit/libutil/local.mk \
tests/unit/libutil-support/local.mk \
Expand All @@ -34,18 +38,28 @@ makefiles += \
tests/unit/libexpr-support/local.mk
endif

ifeq ($(ENABLE_TESTS), yes)
ifeq ($(ENABLE_FUNCTIONAL_TESTS), yes)
makefiles += \
tests/functional/local.mk \
tests/functional/ca/local.mk \
tests/functional/dyn-drv/local.mk \
tests/functional/test-libstoreconsumer/local.mk \
tests/functional/plugins/local.mk
else
makefiles += \
mk/disable-tests.mk
endif

# Some makefiles require access to built programs and must be included late.
makefiles-late =

ifeq ($(ENABLE_DOC_GEN), yes)
makefiles-late += doc/manual/local.mk
endif

ifeq ($(ENABLE_INTERNAL_API_DOCS), yes)
makefiles-late += doc/internal-api/local.mk
endif

# Miscellaneous global Flags

OPTIMIZE = 1

ifeq ($(OPTIMIZE), 1)
Expand All @@ -55,13 +69,55 @@ else
GLOBAL_CXXFLAGS += -O0 -U_FORTIFY_SOURCE
endif

include mk/lib.mk
include mk/platform.mk

# Must be included after `mk/lib.mk` so rules refer to variables defined
# by the library. Rules are not "lazy" like variables, unfortunately.
ifeq ($(ENABLE_BUILD), yes)
$(eval $(call include-sub-makefile, doc/manual/local.mk))
$(eval $(call include-sub-makefile, doc/internal-api/local.mk))
ifdef HOST_WINDOWS
# Windows DLLs are stricter about symbol visibility than Unix shared
# objects --- see https://gcc.gnu.org/wiki/Visibility for details.
# This is a temporary sledgehammer to export everything like on Unix,
# and not detail with this yet.
#
# TODO do not do this, and instead do fine-grained export annotations.
GLOBAL_LDFLAGS += -Wl,--export-all-symbols
endif

GLOBAL_CXXFLAGS += -g -Wall -include $(buildprefix)config.h -std=c++2a -I src

# Include the main lib, causing rules to be defined

include mk/lib.mk

# Fallback stub rules for better UX when things are disabled
#
# These must be defined after `mk/lib.mk`. Otherwise the first rule
# incorrectly becomes the default target.

ifneq ($(ENABLE_UNIT_TESTS), yes)
.PHONY: check
check:
@echo "Unit tests are disabled. Configure without '--disable-unit-tests', or avoid calling 'make check'."
@exit 1
endif

ifneq ($(ENABLE_FUNCTIONAL_TESTS), yes)
.PHONY: installcheck
installcheck:
@echo "Functional tests are disabled. Configure without '--disable-functional-tests', or avoid calling 'make installcheck'."
@exit 1
endif

# Documentation fallback stub rules.

ifneq ($(ENABLE_DOC_GEN), yes)
.PHONY: manual-html manpages
manual-html manpages:
@echo "Generated docs are disabled. Configure without '--disable-doc-gen', or avoid calling 'make manpages' and 'make manual-html'."
@exit 1
endif

ifneq ($(ENABLE_INTERNAL_API_DOCS), yes)
.PHONY: internal-api-html
internal-api-html:
@echo "Internal API docs are disabled. Configure with '--enable-internal-api-docs', or avoid calling 'make internal-api-html'."
@exit 1
endif
8 changes: 4 additions & 4 deletions Makefile.config.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ CXXFLAGS = @CXXFLAGS@
CXXLTO = @CXXLTO@
EDITLINE_LIBS = @EDITLINE_LIBS@
ENABLE_BUILD = @ENABLE_BUILD@
ENABLE_DOC_GEN = @ENABLE_DOC_GEN@
ENABLE_FUNCTIONAL_TESTS = @ENABLE_FUNCTIONAL_TESTS@
ENABLE_INTERNAL_API_DOCS = @ENABLE_INTERNAL_API_DOCS@
ENABLE_S3 = @ENABLE_S3@
ENABLE_TESTS = @ENABLE_TESTS@
ENABLE_UNIT_TESTS = @ENABLE_UNIT_TESTS@
GTEST_LIBS = @GTEST_LIBS@
HAVE_LIBCPUID = @HAVE_LIBCPUID@
HAVE_SECCOMP = @HAVE_SECCOMP@
Expand All @@ -26,7 +29,6 @@ LOWDOWN_LIBS = @LOWDOWN_LIBS@
OPENSSL_LIBS = @OPENSSL_LIBS@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
RAPIDCHECK_HEADERS = @RAPIDCHECK_HEADERS@
SHELL = @bash@
SODIUM_LIBS = @SODIUM_LIBS@
SQLITE3_LIBS = @SQLITE3_LIBS@
Expand All @@ -36,12 +38,10 @@ checkbindir = @checkbindir@
checklibdir = @checklibdir@
datadir = @datadir@
datarootdir = @datarootdir@
doc_generate = @doc_generate@
docdir = @docdir@
embedded_sandbox_shell = @embedded_sandbox_shell@
exec_prefix = @exec_prefix@
includedir = @includedir@
internal_api_docs = @internal_api_docs@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
Expand Down
Loading
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.