Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1545 commits
Select commit Hold shift + click to select a range
d80f0fb
Add test for output warning to ensure stability
gustavderdrache May 21, 2025
f9fdf94
Fix macOS build
edolstra May 27, 2025
161bf86
Merge pull request #13279 from DeterminateSystems/gustavderdrache/tra…
Mic92 May 27, 2025
9ddac1b
Merge pull request #13277 from zimbatm/flake-archive-no-check-sigs
Mic92 May 27, 2025
f7c94cd
Merge pull request #13278 from DeterminateSystems/gustavderdrache/sys…
Mic92 May 27, 2025
cf9d962
Remove unused variable
edolstra May 27, 2025
653a93a
Merge pull request #13276 from NixOS/split-derivation-builder
Ericson2314 May 27, 2025
625dce6
Prepare for FreeBSD sandboxing support
Ericson2314 May 27, 2025
de71ceb
Merge pull request #13281 from NixOS/freebsd-utils
Ericson2314 May 27, 2025
d555d6b
tests/functional: Add more language tests for builtins.match
xokdvium May 27, 2025
6686b54
Fix mingw build
edolstra May 27, 2025
d0a2323
lockFlake(): Allow registry lookups for overridden inputs
getchoo May 28, 2025
a353b2f
Test hacky way of making structured attrs
Ericson2314 May 26, 2025
cc926c3
Merge pull request #13283 from NixOS/fix-mingw
Ericson2314 May 28, 2025
8d725fd
Fix FreeBSD builds
Ericson2314 May 28, 2025
24f5d7a
Fix warning when `HAVE_EMBEDDED_SANDBOX_SHELL` is not set
Ericson2314 May 28, 2025
7577d2d
Deprecate hacky way of making structured attrs
Ericson2314 May 26, 2025
1c0ff52
Merge pull request #13286 from NixOS/fix-warning
edolstra May 28, 2025
5e9744c
Merge pull request #13287 from NixOS/fix-freebsd-build
Ericson2314 May 28, 2025
20226c8
Merge pull request #13273 from NixOS/deprecate-structured-attrs-hack
Ericson2314 May 28, 2025
69603a1
Merge pull request #13282 from xokdvium/prim-match-tests
Ericson2314 May 28, 2025
a653184
Drop precompiled-headers.h
xokdvium May 28, 2025
ba96067
Merge pull request #13290 from xokdvium/drop-pch
Ericson2314 May 28, 2025
fba1bb0
Clear `displayPrefix` in `makeEmptySourceAccessor`
xokdvium May 29, 2025
b7fd872
Cleanup
edolstra May 28, 2025
4dc419e
Split LinuxDerivationBuilder
edolstra May 29, 2025
dd80f16
flake: Drop `pre-commit` override
xokdvium May 29, 2025
4fa991a
flake: Restore `packaging-overriding` check
xokdvium May 29, 2025
1a73f7a
Merge pull request #13298 from xokdvium/drop-pre-commit-override
Ericson2314 May 30, 2025
81f5d67
Merge pull request #13299 from xokdvium/restore-packaging-overriding
Ericson2314 May 30, 2025
908129e
Cleanup
edolstra May 30, 2025
587b5f5
Merge pull request #13297 from NixOS/split-linux-builder
edolstra May 30, 2025
58e34a2
Overriding gtest with gmock
fzakaria May 31, 2025
6badd21
add documentation of tarball-ttl to nix-channel
donottellmetonottellyou May 31, 2025
94bbadd
symbol-table: reduce memory usage and use boost::unordered_flat_set
NaN-git May 18, 2025
ed4e512
symbol-table: reference entries instead of allocating `Value`s
NaN-git Jun 1, 2025
633d391
remove overly verbose mention of fetchTarball
donottellmetonottellyou Jun 1, 2025
c0ceaa2
add reference to the tarball-ttl documentation
donottellmetonottellyou Jun 1, 2025
b73e706
libutil: Use `std::shared_ptr<const Pos>` instead of `std::shared_ptr…
xokdvium Jun 1, 2025
cdb8567
libutil: Don't explicitly default special member functions
xokdvium Jun 1, 2025
9563b50
libexpr: Deduplicate `Value::primOpAppPrimOp`
xokdvium Jun 1, 2025
afd9c78
libexpr: fix various overflows and type mismatches
NaN-git Jun 1, 2025
16e4b3b
Merge pull request #13311 from xokdvium/dedup-prim-op-app-prim-op
edolstra Jun 2, 2025
97e3c3f
Merge pull request #13309 from NaN-git/fix-substring
edolstra Jun 2, 2025
7ad4426
Merge pull request #13310 from xokdvium/cleanup-position
edolstra Jun 2, 2025
8676734
Merge pull request #13304 from fzakaria/small-fix
edolstra Jun 2, 2025
97462bd
Merge pull request #13305 from donottellmetonottellyou/donottellmeton…
edolstra Jun 2, 2025
6b6d3dc
deletePath(): Keep going when encountering an undeletable file
edolstra May 30, 2025
e72f19e
Merge pull request #13300 from NixOS/deletePath-keep-going
Mic92 Jun 2, 2025
6a761c1
Merge pull request #13296 from xokdvium/empty-accessor-prefix
Mic92 Jun 2, 2025
0712339
`--keep-failed` with remote builders will keep the failed build direc…
cole-h Jun 2, 2025
54aa73b
fixup: only show "you can rerun" message if the derivation's platform…
cole-h Jun 3, 2025
4b8f74b
Merge pull request #13320 from DeterminateSystems/keep-failed-remote-…
Mic92 Jun 3, 2025
cfc15d6
Modify docker.nix to use mapAttrsToList instead of mapAttrsFlatten
poperigby Jun 3, 2025
4751cbe
Merge pull request #13321 from poperigby/docker-map-attrs-flatten-rep…
Mic92 Jun 4, 2025
4bce2d7
GitSourceAccessor: Make thread-safe
edolstra Jun 4, 2025
2afc84f
Merge pull request #13323 from NixOS/git-accessor-thread-safe
edolstra Jun 5, 2025
0a87ba0
Prevent double copy of nixpkgs source tree
edolstra Jun 5, 2025
e72a0ad
docker: add docu references & remove duplicate code
h0nIg Jun 5, 2025
3c9b9b1
nix repl: Print which variables are just loaded
kstrafe Sep 21, 2024
13e3704
nix repl: Add `:ll` to show all recently loaded variables
kstrafe Sep 21, 2024
540db80
Merge pull request #13326 from NixOS/no-double-copy
Mic92 Jun 6, 2025
37b4407
Merge pull request #13284 from getchoo-contrib/getchoo/override-input…
Mic92 Jun 6, 2025
d8b067b
repl: Don't wait on incomplete parses from imported file
edolstra Jun 6, 2025
91b3573
Rethrow non-EOF errors
edolstra Jun 6, 2025
530efc3
Merge pull request #13334 from NixOS/repl-incomplete-parse
Ericson2314 Jun 6, 2025
2caccbe
docker: shrink code - use buildenv.manifest
h0nIg Jun 6, 2025
1022598
Merge pull request #13258 from NaN-git/opt-symbol-table
roberth Jun 7, 2025
c5b1be4
Merge pull request #11406 from kstrafe/master
roberth Jun 7, 2025
c2aaa68
libexpr: Use `primOp` getter
xokdvium Jun 10, 2025
77f5f50
libexpr: Use `context` getter
xokdvium Jun 10, 2025
408873c
libexpr: Use `c_str` getter
xokdvium Jun 10, 2025
b3c1b70
Merge pull request #13345 from xokdvium/use-value-getters
roberth Jun 10, 2025
525078c
Fix broken link in configuration description
lucperkins Jun 11, 2025
9eb46e9
Make the repl test more robust
edolstra Jun 11, 2025
35cb138
Merge pull request #13348 from NixOS/repl-test-robust-2
Ericson2314 Jun 11, 2025
d46ce52
Merge pull request #13347 from lucperkins/fix-broken-conf-link
Ericson2314 Jun 11, 2025
f42eaf2
Create test for #13293
Ericson2314 Jun 11, 2025
5267718
Fix #13293
Ericson2314 May 29, 2025
371fcf9
Merge pull request #13294 from obsidiansystems/fix-13293
Ericson2314 Jun 11, 2025
93a42a5
flake: Add meson formatter
xokdvium Jun 11, 2025
57c72de
docker: make sure `nix config check` works
drupol Jun 12, 2025
ab10fdd
Rework future tense in user-facing messages
lucperkins Jun 12, 2025
5abaf36
docker: reduce duplicates, use `coreutils-full`
drupol Jun 12, 2025
5862f38
docker: use `callPackage`, parametrise the image build
drupol Jun 12, 2025
6eb4ee6
docker: replace `git` with `gitMinimal`
drupol Jun 12, 2025
0f6cb33
fix throwing output paths out of sandbox paths
SimSaladin Jun 12, 2025
6587e7b
libexpr: Add and use `lambda` getter
xokdvium Jun 12, 2025
441fa86
libexpr: Add and use `thunk` getter
xokdvium Jun 12, 2025
f07a9f8
libexpr: Add and use `primOpApp` getter
xokdvium Jun 12, 2025
c041d71
libexpr: Add and use `app` getter
xokdvium Jun 12, 2025
e4df189
libexpr: Add and use `pathStr` getter
xokdvium Jun 12, 2025
bc6b52a
libexpr: Add and use `pathAccessor` getter
xokdvium Jun 12, 2025
c437e27
Merge pull request #13357 from xokdvium/more-getters
roberth Jun 12, 2025
7b46eb9
libexpr: Remove non-const overload of `listElems`
xokdvium Jun 12, 2025
f8c1ac9
Introduce top-level `structuredAttrs` field in JSON derivation format
Ericson2314 Jun 11, 2025
d12e424
Merge pull request #13360 from xokdvium/duplicate-list-elems-overload
Mic92 Jun 13, 2025
918ac6b
Merge pull request #13354 from drupol/push-sopslzmmlqxu
Mic92 Jun 13, 2025
82397e2
Merge branch 'master' into push-rrzylpqynznw
Mic92 Jun 13, 2025
84743c8
Merge pull request #13351 from drupol/push-rrzylpqynznw
Mic92 Jun 13, 2025
a1fe09d
Merge pull request #13350 from xokdvium/meson-format
Mic92 Jun 13, 2025
699db04
Fix a minor typo
jayeshv Jun 13, 2025
46853c4
Merge pull request #13361 from jayeshv/patch-1
Mic92 Jun 14, 2025
e27a062
docker: remove last use of `pkgs.`
drupol Jun 14, 2025
e73fcd0
Merge pull request #13364 from drupol/push-qspryqrvmpkt
Mic92 Jun 15, 2025
b2596a7
libutil: Add custom PeekSort implementation
xokdvium Jun 15, 2025
351d898
libexpr: Switch builtins.sort primop to use peeksort
xokdvium Jun 15, 2025
ddcfc81
libexpr: Document requirements for comparator passed to builtins.sort
xokdvium Jun 15, 2025
f9170a8
tests/functional/lang: Add sort stability test for lists langer than …
xokdvium Jun 15, 2025
c1aaa97
libexpr: further removal of std::string copies
NaN-git Jun 14, 2025
18dc962
docker: add basics OpenContainers labels
drupol Jun 15, 2025
bb44347
docker: expose `config.Cmd` as parameter
drupol Jun 15, 2025
af01fea
Merge pull request #12623 from xokdvium/ord-safe-sort
tomberek Jun 16, 2025
cdb4178
Merge pull request #13366 from drupol/push-smvorxlvxusx
Ericson2314 Jun 16, 2025
d64c922
libstore: fix race condition when creating state directories
wolfgangwalther Jun 17, 2025
59c7dac
Git fetcher: Do not consider a null revision (i.e. workdir) to be locked
edolstra Jun 12, 2025
bb32fcd
Merge pull request #13368 from wolfgangwalther/race-state-creation
edolstra Jun 17, 2025
77f6b65
tests: fixup with jq-1.8.0
vcunat Jun 18, 2025
da76bc0
Fix broken link
synalice Jun 18, 2025
86dda98
Fix typo
synalice Jun 18, 2025
cd97c54
Merge pull request #13371 from vcunat/p/jq-1.8.0_master
edolstra Jun 18, 2025
d2a25fb
Fix Nix formatting changes
lucperkins Jun 18, 2025
d6710b4
Merge remote-tracking branch 'upstream/master' into messages-present-…
lucperkins Jun 18, 2025
197484c
Merge pull request #13373 from synalice/patch-2
edolstra Jun 18, 2025
fc47178
Merge pull request #13372 from synalice/patch-1
edolstra Jun 18, 2025
9b57573
Revert "Drop magic-nix-cache"
edolstra Jun 18, 2025
d254c84
Merge pull request #13349 from obsidiansystems/structured-attrs-json
Ericson2314 Jun 18, 2025
20ba6be
Improve the Rosetta installation hint
edolstra Jun 19, 2025
a8a5537
Merge pull request #13376 from NixOS/use-magic-nix-cache
Mic92 Jun 19, 2025
aa1629c
Merge pull request #13378 from NixOS/improve-rosetta-hint
Mic92 Jun 19, 2025
9c12059
Merge remote-tracking branch 'upstream/master' into messages-present-…
lucperkins Jun 19, 2025
3132aba
Fix broken test
lucperkins Jun 19, 2025
42ea272
Merge pull request #13353 from lucperkins/messages-present-tense
roberth Jun 20, 2025
785f386
Update docs
synalice Jun 20, 2025
6ef683c
Restore multiline formatting of lists in meson files
xokdvium Jun 20, 2025
a4dcce3
Merge pull request #13382 from synalice/patch-3
xokdvium Jun 20, 2025
b9b510d
Merge pull request #13383 from xokdvium/meson-format-multiline
Ericson2314 Jun 20, 2025
47b7d91
Properly prefix libfetchers header
Ericson2314 Jun 20, 2025
a55806a
Get rid of `addWantedOutputs`
Ericson2314 Mar 3, 2025
7226a11
libutil: guess or invent a path from file descriptors
Mar 26, 2025
6a5b6ad
libstore: open build directory as a dirfd as well
Mar 26, 2025
002d202
libstore: chown to builder variant for file descriptors
Mar 26, 2025
034f59b
libutil: writeFile variant for file descriptors
Mar 26, 2025
4e59d3f
libstore: ensure that `passAsFile` is created in the original temp dir
Mar 26, 2025
5ec047f
libutil: ensure that `_deletePath` does NOT use absolute paths with d…
Mar 26, 2025
4ea4813
libstore: ensure that temporary directory is always 0o000 before dele…
Mar 27, 2025
e5dc3e8
Tweak comment
edolstra Jun 12, 2025
479c356
Drop guessOrInventPathFromFD()
edolstra Jun 12, 2025
a4b5584
Replace 'bool sync' with an enum for clarity
edolstra Jun 12, 2025
9af4c26
Chown structured attr files safely
edolstra Jun 12, 2025
88b7db1
libstore: Don't default build-dir to temp-dir, store setting
Mar 30, 2025
5acf50a
Disallow the build directory having world-writable parents
edolstra Jun 12, 2025
2e2fe4c
Cleanup
edolstra Jun 12, 2025
37685b1
Fix Darwin test failure in repl.sh
edolstra Jun 19, 2025
6a74590
Merge pull request #13388 from NaN-git/opt-string_view
roberth Jun 23, 2025
df21f24
Fix link
egorkonovalov Jun 23, 2025
f9afc1e
Merge pull request #13393 from egorkonovalov/patch-1
roberth Jun 23, 2025
448cfb7
Merge remote-tracking branch 'cve/fod-cves-master'
edolstra Jun 24, 2025
55d12df
libstore-tests: Don't leak memory in tests
xokdvium Jun 24, 2025
df2d5f2
Merge pull request #13395 from xokdvium/libstore-tests-leaks
roberth Jun 25, 2025
7c0ea14
Fix deep overrides
edolstra Jun 12, 2025
637c4f3
Add tests for deep overrides
edolstra Jun 12, 2025
b415fac
Don't allow flake inputs to have both a flakeref and a follows
edolstra Jun 12, 2025
eaced1e
Move FlakeCommand into a header, allow separate registration of subco…
edolstra Jun 26, 2025
acfdacc
Merge pull request #13401 from NixOS/split-flake-command
xokdvium Jun 26, 2025
2481e9a
Merge branch 'master' into patch-3
h0nIg Jun 26, 2025
8fbc27a
enhancements
h0nIg Jun 26, 2025
ba12adc
format
h0nIg Jun 26, 2025
75412eb
libflake: Remove unused maybeParseFlakeRef and maybeParseFlakeRefWith…
xokdvium Jun 27, 2025
fa3d7e6
libexpr: don't allocate additional set in builtins.listToAttrs
NaN-git Jun 15, 2025
8708e9a
libutil: Use caching `directory_entry` API in `PosixSourceAccessor::r…
xokdvium Jun 30, 2025
9600eae
Merge pull request #13412 from xokdvium/read-directory-caching
edolstra Jul 1, 2025
4458a90
Merge pull request #13406 from xokdvium/libflake-dead-code
edolstra Jul 1, 2025
5879ab1
Merge pull request #13400 from NixOS/fix-deep-overrides
edolstra Jul 1, 2025
d16af1d
libfetchers: Add missing include guard to git-lfs-fetch.hh
xokdvium Jul 1, 2025
4bf23d2
Merge pull request #13416 from xokdvium/pragma-once-missing
roberth Jul 2, 2025
04a731b
Merge pull request #13387 from NaN-git/opt-listToAttrs
roberth Jul 2, 2025
ea32580
libexpr: Format value.hh
xokdvium Jun 28, 2025
1a033ee
libexpr: Use single `tSmallList` `Value` discriminator for small lists
xokdvium Jun 28, 2025
810455f
libexpr: Simplify Value::is* methods by introducing isa function temp…
xokdvium Jun 28, 2025
c39cc00
libexpr: Factor out `Payload` union to a default implementation of `V…
xokdvium Jun 28, 2025
e73fcf7
libexpr: Use proxy ListView for all Value list accesses
xokdvium Jul 2, 2025
5a20a48
libexpr: Reduce the size of Value down to 16 bytes
xokdvium Jun 30, 2025
c79b801
Merge pull request #13407 from xokdvium/smaller-value
roberth Jul 2, 2025
d4f67fd
Merge pull request #13369 from NixOS/null-revision-not-locked
edolstra Jul 3, 2025
eb97d8c
Fix indentation of "Unable to start any build" error message
edolstra Jul 4, 2025
af05ce0
queryMissing(): Return a struct
edolstra Jul 4, 2025
5d308cc
printMissing(): Take a MissingPaths argument
edolstra Jul 4, 2025
f039f68
nix-build: Drop unnecessary call to queryMissing()
edolstra Jul 4, 2025
6bf997e
Merge pull request #13419 from NixOS/fix-indent
xokdvium Jul 4, 2025
fb5e22e
build-cores: detect cores automatically if set to 0
DavHau Jun 27, 2025
99c20e6
Merge pull request #13328 from h0nIg/patch-3
edolstra Jul 7, 2025
c512fd1
Merge pull request #13420 from NixOS/query-missing
roberth Jul 7, 2025
864ccb6
Merge pull request #13356 from SimSaladin/sim/fix-erase-output-paths
edolstra Jul 7, 2025
8a9e625
release notes: 2.30.0
edolstra Jul 7, 2025
19c4e78
Typo
edolstra Jul 7, 2025
f531249
Add manual release notes
edolstra Jul 7, 2025
2c0343e
# Contributors -> ## Contributors
edolstra Jul 7, 2025
a492493
Rearrange release notes
edolstra Jul 7, 2025
8c71de2
Add link
edolstra Jul 7, 2025
9e7655f
fix: make setuid tests use new build-dir location /nix/var/nix/builds
tomberek Jul 7, 2025
58e07c3
Sort contributors
edolstra Jul 7, 2025
9f8df68
doc: Add more links
roberth Jul 7, 2025
b9b791d
Merge pull request #13425 from NixOS/tomberek.update_setuid_test
edolstra Jul 7, 2025
ab5fc30
Merge pull request #13424 from NixOS/release-notes
edolstra Jul 7, 2025
cf0df26
Merge pull request #13240 from obsidiansystems/dyn-drv-take-3
Ericson2314 Jul 7, 2025
87299e4
installers, tests: remove --preserve=mode from cp invocations
jsoo1 Jul 7, 2025
723903d
Bump version
edolstra Jul 8, 2025
4fa99d7
release-process.md: Remove unnecessary step
edolstra Jul 8, 2025
06665e2
Update .mergify.yml
edolstra Jul 8, 2025
6d0194b
Merge pull request #13429 from NixOS/bump-2.31.0
edolstra Jul 8, 2025
98a883b
Merge pull request #13427 from jsoo1/remove-p
edolstra Jul 8, 2025
a164913
globals.hh: fix broken link to nspawn example
ConnorBaker Jul 8, 2025
7caac53
Merge pull request #13433 from ConnorBaker/patch-1
Ericson2314 Jul 8, 2025
8a1f471
docker: fix nixConf
h0nIg Jul 9, 2025
9857c0b
docker: fix nixConf - fmt
h0nIg Jul 9, 2025
3cfecd9
Merge pull request #13435 from h0nIg/patch-4
edolstra Jul 9, 2025
95437b9
lockFlake(): When updating a lock, respect the input's lock file
edolstra Jul 9, 2025
b19e9ac
Merge pull request #13402 from DavHau/build-cores
xokdvium Jul 9, 2025
485cbfc
Merge pull request #13437 from NixOS/respect-transitive-locks
tomberek Jul 10, 2025
aa18dc5
fetchClosure: Fix gcc warning
edolstra Jul 10, 2025
74a144c
Require Boost 1.81.0 or higher
edolstra Jul 10, 2025
ca9f202
Simplify SymbolTable::create()
edolstra Jul 10, 2025
fc03b89
Fix lessThan doc
roberth Jul 10, 2025
e82ad5d
Merge pull request #13441 from NixOS/fix-fetch-closure-warning
edolstra Jul 10, 2025
a783468
Merge pull request #13444 from roberth/fix-lessThan-doc
edolstra Jul 10, 2025
a17f377
Fix documentation for GC w.r.t. symlinks
de11n Jul 10, 2025
6e78cc9
libexpr: Fix invalid handling of errors for imported functions
xokdvium Jul 11, 2025
b196922
Merge pull request #13450 from xokdvium/formal-call-unreachable
Ericson2314 Jul 11, 2025
e2ef2cf
Address ifdef problem with macOS/BSD sandboxing
gustavderdrache Jul 11, 2025
8e5814d
CI: Roll nix version to 2.29.1
gustavderdrache Jul 11, 2025
ab3cd76
Merge pull request #13455 from DeterminateSystems/gustavderdrache/fix…
xokdvium Jul 11, 2025
a48632f
Better Handling for Expired Credentials
jgbailey-well Jul 12, 2025
b124512
Merge pull request #13447 from de11n/fix-gc-docs
edolstra Jul 12, 2025
22d6969
Update src/libstore/s3-binary-cache-store.cc
m4dc4p Jul 12, 2025
f786c0b
Update src/libstore/s3-binary-cache-store.cc
m4dc4p Jul 12, 2025
5cd9443
libstore: fix Unix sockets in the build directory on sandboxed macOS
emilazy Jun 27, 2025
3e9a100
docker: set default parameters values
drupol Jul 13, 2025
03bf582
Merge pull request #13468 from xokdvium/darwin-sandbox-sockets
edolstra Jul 14, 2025
e8314e6
Merge pull request #13460 from m4dc4p/m4dc4p/handle-expired-tokens
edolstra Jul 14, 2025
04f6974
ci: Dogfood Nix from master
xokdvium Jul 13, 2025
3b3c021
ci: Dogfood nix from master for `vm_tests` and `flake_regressions`
xokdvium Jul 13, 2025
6abc29b
Move boost version check to libutil
edolstra Jul 15, 2025
d7c340a
Merge pull request #13473 from xokdvium/dogfood-ci
xokdvium Jul 15, 2025
1272c49
Merge pull request #13442 from NixOS/boost-minver
edolstra Jul 16, 2025
17c94ca
Merge pull request #13469 from drupol/push-nnwkpwsowkqm
edolstra Jul 16, 2025
6e733b0
Fix SIZE_MAX undefined warning in fchmodat2-compat.hh
Mic92 Jul 17, 2025
4ba3b15
Fix s3.hh to include public config header
Mic92 Jul 17, 2025
6bf940d
Fix clang-tidy uninitialized value warning in derivation-options.cc
Mic92 Jul 17, 2025
3c0cd73
Fix uninitialized field in Attr constructor
Mic92 Jul 17, 2025
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
  •  
  •  
  •  
11 changes: 1 addition & 10 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,7 @@
.github/CODEOWNERS @edolstra

# Documentation of built-in functions
src/libexpr/primops.cc @roberth @fricklerhandwerk

# Documentation of settings
src/libexpr/eval-settings.hh @fricklerhandwerk
src/libstore/globals.hh @fricklerhandwerk

# Documentation
doc/manual @fricklerhandwerk
maintainers/*.md @fricklerhandwerk
src/**/*.md @fricklerhandwerk
src/libexpr/primops.cc @roberth

# Libstore layer
/src/libstore @ericson2314
2 changes: 1 addition & 1 deletion .github/STALE-BOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
- Thanks for your contribution!
- To remove the stale label, just leave a new comment.
- _How to find the right people to ping?_ &rarr; [`git blame`](https://git-scm.com/docs/git-blame) to the rescue! (or GitHub's history and blame buttons.)
- You can always ask for help on [our Discourse Forum](https://discourse.nixos.org/) or on [Matrix - #nix:nixos.org](https://matrix.to/#/#nix:nixos.org).
- You can always ask for help on [our Discourse Forum](https://discourse.nixos.org/) or on [Matrix - #users:nixos.org](https://matrix.to/#/#users:nixos.org).

## Suggestions for PRs

Expand Down
50 changes: 50 additions & 0 deletions .github/actions/install-nix-action/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: "Install Nix"
description: "Helper action for installing Nix with support for dogfooding from master"
inputs:
dogfood:
description: "Whether to use Nix installed from the latest artifact from master branch"
required: true # Be explicit about the fact that we are using unreleased artifacts
extra_nix_config:
description: "Gets appended to `/etc/nix/nix.conf` if passed."
install_url:
description: "URL of the Nix installer"
required: false
default: "https://releases.nixos.org/nix/nix-2.30.1/install"
github_token:
description: "Github token"
required: true
runs:
using: "composite"
steps:
- name: "Download nix install artifact from master"
shell: bash
id: download-nix-installer
if: ${{ inputs.dogfood }}
run: |
RUN_ID=$(gh run list --repo "$DOGFOOD_REPO" --workflow ci.yml --branch master --status success --json databaseId --jq ".[0].databaseId")

if [ "$RUNNER_OS" == "Linux" ]; then
INSTALLER_ARTIFACT="installer-linux"
elif [ "$RUNNER_OS" == "macOS" ]; then
INSTALLER_ARTIFACT="installer-darwin"
else
echo "::error ::Unsupported RUNNER_OS: $RUNNER_OS"
exit 1
fi

INSTALLER_DOWNLOAD_DIR="$GITHUB_WORKSPACE/$INSTALLER_ARTIFACT"
mkdir -p "$INSTALLER_DOWNLOAD_DIR"

gh run download "$RUN_ID" --repo "$DOGFOOD_REPO" -n "$INSTALLER_ARTIFACT" -D "$INSTALLER_DOWNLOAD_DIR"
echo "installer-path=file://$INSTALLER_DOWNLOAD_DIR" >> "$GITHUB_OUTPUT"

echo "::notice ::Dogfooding Nix installer from master (https://github.com/$DOGFOOD_REPO/actions/runs/$RUN_ID)"
env:
GH_TOKEN: ${{ inputs.github_token }}
DOGFOOD_REPO: "NixOS/nix"
- uses: cachix/install-nix-action@c134e4c9e34bac6cab09cf239815f9339aaaf84e # v31.5.1
with:
# Ternary operator in GHA: https://www.github.com/actions/runner/issues/409#issuecomment-752775072
install_url: ${{ inputs.dogfood && format('{0}/install', steps.download-nix-installer.outputs.installer-path) || inputs.install_url }}
install_options: ${{ inputs.dogfood && format('--tarball-url-prefix {0}', steps.download-nix-installer.outputs.installer-path) || '' }}
extra_nix_config: ${{ inputs.extra_nix_config }}
208 changes: 103 additions & 105 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,154 +7,142 @@ on:
permissions: read-all

jobs:
eval:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/install-nix-action
with:
dogfood: true
extra_nix_config:
experimental-features = nix-command flakes
github_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix flake show --all-systems --json

tests:
needs: [check_secrets]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
include:
- scenario: on ubuntu
runs-on: ubuntu-24.04
os: linux
- scenario: on macos
runs-on: macos-14
os: darwin
name: tests ${{ matrix.scenario }}
runs-on: ${{ matrix.runs-on }}
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v30
- uses: ./.github/actions/install-nix-action
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
dogfood: true
# The sandbox would otherwise be disabled by default on Darwin
extra_nix_config: |
sandbox = true
max-jobs = 1
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV
- uses: cachix/cachix-action@v15
if: needs.check_secrets.outputs.cachix == 'true'
- uses: DeterminateSystems/magic-nix-cache-action@main
# Since ubuntu 22.30, unprivileged usernamespaces are no longer allowed to map to the root user:
# https://ubuntu.com/blog/ubuntu-23-10-restricted-unprivileged-user-namespaces
- run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
if: matrix.os == 'linux'
- run: scripts/build-checks
- run: scripts/prepare-installer-for-github-actions
- name: Upload installer tarball
uses: actions/upload-artifact@v4
with:
name: '${{ env.CACHIX_NAME }}'
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- if: matrix.os == 'ubuntu-latest'
run: |
free -h
swapon --show
swap=$(swapon --show --noheadings | head -n 1 | awk '{print $1}')
echo "Found swap: $swap"
sudo swapoff $swap
# resize it (fallocate)
sudo fallocate -l 10G $swap
sudo mkswap $swap
sudo swapon $swap
free -h
(
while sleep 60; do
free -h
done
) &
- run: nix --experimental-features 'nix-command flakes' flake check -L
- run: nix --experimental-features 'nix-command flakes' flake show --all-systems --json
name: installer-${{matrix.os}}
path: out/*

installer_test:
needs: [tests]
strategy:
fail-fast: false
matrix:
include:
- scenario: on ubuntu
runs-on: ubuntu-24.04
os: linux
- scenario: on macos
runs-on: macos-14
os: darwin
name: installer test ${{ matrix.scenario }}
runs-on: ${{ matrix.runs-on }}
steps:
- uses: actions/checkout@v4
- name: Download installer tarball
uses: actions/download-artifact@v4
with:
name: installer-${{matrix.os}}
path: out
- name: Serving installer
id: serving_installer
run: ./scripts/serve-installer-for-github-actions
- uses: cachix/install-nix-action@v31
with:
install_url: 'http://localhost:8126/install'
install_options: "--tarball-url-prefix http://localhost:8126/"
- run: sudo apt install fish zsh
if: matrix.os == 'linux'
- run: brew install fish
if: matrix.os == 'darwin'
- run: exec bash -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec sh -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec zsh -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec fish -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec bash -c "nix-channel --add https://releases.nixos.org/nixos/unstable/nixos-23.05pre466020.60c1d71f2ba nixpkgs"
- run: exec bash -c "nix-channel --update && nix-env -iA nixpkgs.hello && hello"

# Steps to test CI automation in your own fork.
# Cachix:
# 1. Sign-up for https://www.cachix.org/
# 2. Create a cache for $githubuser-nix-install-tests
# 3. Create a cachix auth token and save it in https://github.com/$githubuser/nix/settings/secrets/actions in "Repository secrets" as CACHIX_AUTH_TOKEN
# Dockerhub:
# 1. Sign-up for https://hub.docker.com/
# 2. Store your dockerhub username as DOCKERHUB_USERNAME in "Repository secrets" of your fork repository settings (https://github.com/$githubuser/nix/settings/secrets/actions)
# 3. Create an access token in https://hub.docker.com/settings/security and store it as DOCKERHUB_TOKEN in "Repository secrets" of your fork
check_secrets:
permissions:
contents: none
name: Check Cachix and Docker secrets present for installer tests
runs-on: ubuntu-latest
name: Check Docker secrets present for installer tests
runs-on: ubuntu-24.04
outputs:
cachix: ${{ steps.secret.outputs.cachix }}
docker: ${{ steps.secret.outputs.docker }}
steps:
- name: Check for secrets
id: secret
env:
_CACHIX_SECRETS: ${{ secrets.CACHIX_SIGNING_KEY }}${{ secrets.CACHIX_AUTH_TOKEN }}
_DOCKER_SECRETS: ${{ secrets.DOCKERHUB_USERNAME }}${{ secrets.DOCKERHUB_TOKEN }}
run: |
echo "::set-output name=cachix::${{ env._CACHIX_SECRETS != '' }}"
echo "::set-output name=docker::${{ env._DOCKER_SECRETS != '' }}"

installer:
needs: [tests, check_secrets]
if: github.event_name == 'push' && needs.check_secrets.outputs.cachix == 'true'
runs-on: ubuntu-latest
outputs:
installerURL: ${{ steps.prepare-installer.outputs.installerURL }}
steps:
- uses: actions/checkout@v4
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@v30
with:
install_url: https://releases.nixos.org/nix/nix-2.20.3/install
- uses: cachix/cachix-action@v15
with:
name: '${{ env.CACHIX_NAME }}'
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
cachixArgs: '-v'
- id: prepare-installer
run: scripts/prepare-installer-for-github-actions

installer_test:
needs: [installer, check_secrets]
if: github.event_name == 'push' && needs.check_secrets.outputs.cachix == 'true'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
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@v30
with:
install_url: '${{needs.installer.outputs.installerURL}}'
install_options: "--tarball-url-prefix https://${{ env.CACHIX_NAME }}.cachix.org/serve"
- run: sudo apt install fish zsh
if: matrix.os == 'ubuntu-latest'
- run: brew install fish
if: matrix.os == 'macos-latest'
- run: exec bash -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec sh -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec zsh -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec fish -c "nix-instantiate -E 'builtins.currentTime' --eval"
- run: exec bash -c "nix-channel --add https://releases.nixos.org/nixos/unstable/nixos-23.05pre466020.60c1d71f2ba nixpkgs"
- run: exec bash -c "nix-channel --update && nix-env -iA nixpkgs.hello && hello"

docker_push_image:
needs: [check_secrets, tests, vm_tests]
needs: [tests, vm_tests, check_secrets]
permissions:
contents: read
packages: write
if: >-
needs.check_secrets.outputs.docker == 'true' &&
github.event_name == 'push' &&
github.ref_name == 'master' &&
needs.check_secrets.outputs.cachix == 'true' &&
needs.check_secrets.outputs.docker == 'true'
runs-on: ubuntu-latest
github.ref_name == 'master'
runs-on: ubuntu-24.04
steps:
- name: Check for secrets
id: secret
env:
_DOCKER_SECRETS: ${{ secrets.DOCKERHUB_USERNAME }}${{ secrets.DOCKERHUB_TOKEN }}
run: |
echo "::set-output name=docker::${{ env._DOCKER_SECRETS != '' }}"
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v30
- uses: cachix/install-nix-action@v31
with:
install_url: https://releases.nixos.org/nix/nix-2.20.3/install
- run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV
- uses: DeterminateSystems/magic-nix-cache-action@main
- run: echo NIX_VERSION="$(nix --experimental-features 'nix-command flakes' eval .\#nix.version | tr -d \")" >> $GITHUB_ENV
- uses: cachix/cachix-action@v15
if: needs.check_secrets.outputs.cachix == 'true'
with:
name: '${{ env.CACHIX_NAME }}'
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix --experimental-features 'nix-command flakes' build .#dockerImage -L
- run: docker load -i ./result/image.tar.gz
- run: docker tag nix:$NIX_VERSION ${{ secrets.DOCKERHUB_USERNAME }}/nix:$NIX_VERSION
Expand Down Expand Up @@ -191,10 +179,15 @@ jobs:
docker push $IMAGE_ID:master

vm_tests:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: ./.github/actions/install-nix-action
with:
dogfood: true
extra_nix_config:
experimental-features = nix-command flakes
github_token: ${{ secrets.GITHUB_TOKEN }}
- uses: DeterminateSystems/magic-nix-cache-action@main
- run: |
nix build -L \
Expand All @@ -206,7 +199,7 @@ jobs:

flake_regressions:
needs: vm_tests
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout nix
uses: actions/checkout@v4
Expand All @@ -220,6 +213,11 @@ jobs:
with:
repository: NixOS/flake-regressions-data
path: flake-regressions/tests
- uses: DeterminateSystems/nix-installer-action@main
- uses: ./.github/actions/install-nix-action
with:
dogfood: true
extra_nix_config:
experimental-features = nix-command flakes
github_token: ${{ secrets.GITHUB_TOKEN }}
- uses: DeterminateSystems/magic-nix-cache-action@main
- run: nix build -L --out-link ./new-nix && PATH=$(pwd)/new-nix/bin:$PATH MAX_FLAKES=25 flake-regressions/eval-all.sh
2 changes: 1 addition & 1 deletion .github/workflows/labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:

jobs:
labels:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/labeler@v5
Expand Down
Loading
Loading