Commit Graph
17849 Commits
Author SHA1 Message Date
benaryorg fcd967da16 libexpr: fetchGit output documentation
Documentation for the output of `builtins.fetchGit`.
In particular this includes details on the both `lastModifiedDate` and `shortRev` which were not readily apparent.
Recommendations are made on the use of `shortRev`; it is considered stable, yet use is discouraged to avoid compatibility and interoperablity issues.

Fixes fj#814

Change-Id: If65c4f84d8a1569dcab2db07f63e69e4053ab74b
Signed-off-by: benaryorg <binary@benary.org>
2025-05-10 13:43:38 +00:00
eldritch horrors 5917db84aa nix: don't send tarballTtl to the daemon
it's an eval-time only setting, the daemon doesn't use it anywhere. this
is a hack, but until we have a much better settings system we are stuck.

fixes #680

Change-Id: I532088b0279f13da0a0a65c2bd2e5f9d1dfb39da
2025-05-10 12:20:09 +00:00
Linus HeckemannandLix Systems Gerrit a10de1ee56 Merge "build-release-notes: ignore dotfiles" into main 2025-05-10 09:53:56 +00:00
Rebecca Turner dcb0a97000 release: merge release 2.93.0 back to mainline
This merge commit returns to the previous state prior to the release but leaves the tag in the branch history.
Release created with releng/create_release.xsh

Change-Id: I67db1020490da19f5cf35b04b9ccfe47cfe829d1
2025-05-09 14:48:06 -07:00
Rebecca Turner df214a1db8 release: 2.93.0 "Bici Bici"
Release produced with releng/create_release.xsh

Change-Id: I4471a4e6d2776d2f347ee6dec04d1c61eb8b1898
2.93.0
2025-05-09 14:48:05 -07:00
Rebecca Turner bb0cdf110e release: release notes for 2.93.0
Release created with releng/create_release.xsh

Change-Id: I5a793e632dae1b6fdd4f743c383aca937b048dfc
2025-05-09 14:47:55 -07:00
Rebecca Turner 7593714154 version.json: 2.93.0-dev -> 2.93.0 "Bici Bici"
Change-Id: Ib6c3df3549f01b04ede8f13bfa378dcefb64b15a
2025-05-09 14:47:21 -07:00
Raito Bezariusandeldritch horrors 3f3060ebed misc/capnproto: patch to avoid monotonic time checks
From time to time, our KVM's CI machine clock goes in a weird direction
during NixOS tests, this is known on certain hardware, e.g. macOS, where
the check is disabled. Cap'n'Proto removed the check everywhere now.

Fixes fj#754.

We can remove the patch once it hits a stable version of Cap'n'Proto.

Change-Id: I4c9be5061c3b244f601486a8ac4521dff44ceb92
Signed-off-by: Raito Bezarius <raito@lix.systems>
2025-05-09 14:17:35 +02:00
eldritch horrors 294c55026c libcmd: don't mention debug env values when added
this can be extremely distracting when running in a repl that has access
to all of nixpkgs from its static env. not only do we print all bindings
in the stack trace, we also print them *again* every time we enter *any*
but the outermost frames. duplicating this environment information isn't
all that useful and mostly just flushes useful information out of sight.

fixes #816

Change-Id: I027e6a565e82663275e21333bb1d00d498cd4127
2025-05-09 11:51:39 +00:00
Commentator2.0andLix Systems Gerrit 8e832006eb Merge "move nix fixture to own file" into main 2025-05-09 11:15:52 +00:00
Commentator2.0andLix Systems Gerrit 1fba1eec58 Merge "Added functions for copying files into tempdir for declarative testing without side effects" into main 2025-05-09 11:15:11 +00:00
kfearsoffandLix Systems Gerrit 8310367859 Merge "releng: add local environment" into main 2025-05-09 09:05:55 +00:00
KFearsoffandjade 3f811a415b releng: add local environment
This takes the first baby steps towards resolving #765. This first
test/workflow isn't the most useful thing ever, because it doesn't
test the code path for building the manual. Still, it does a decent job
at testing the basic git workflow, and the upload functionality.

Change-Id: I16dd3a39addd6308ad3eb37c2e3dc3466584a4e3
2025-05-09 00:01:22 +00:00
Linus Heckemannandjade b0947777ec build-release-notes: ignore dotfiles
Editors may leave these hanging about, but they're not likely to be
valid release notes

Change-Id: Ie3c9a6e849c6d54514ac25370a8d847a0caf499d
2025-05-08 23:47:59 +00:00
Tom HubrechtandLix Systems Gerrit 885dde9c3d Merge "libstore: Show illegal path references in fixed-outputs derivations" into main 2025-05-08 20:19:15 +00:00
a8da0df671 libstore: Show illegal path references in fixed-outputs derivations
This allows debugging the errors by pinpointing the offenders, instead
of trying to blindly guess what could have possibly gone wrong.

The wording has been improved to better explain the failure.

Closes #530

Co-authored-by: Ben Millwood <thebenmachine+git@gmail.com>
Change-Id: I84ba5d2d81e5d1867f53bd3bc80e615cab9fe274
2025-05-08 20:23:12 +02:00
eldritch horrors 8a76db3ab7 libmain: tell kj to use SIGUSR2
fixes #679

Change-Id: Ib7c8afd0192c7329ab3ca90925b1b756b6918c7a
2025-05-08 10:50:10 +00:00
rebecca “wiggles” turnerandLix Systems Gerrit 483f377197 Merge "build-release-notes: more blank lines in output" into main 2025-05-07 22:12:17 +00:00
Rebecca Turner 7ae9480d94 build-release-notes: more blank lines in output
This makes it easier to read and copy/paste the contents when preparing
a Lix release blog post.

The output can be read in
`build/doc/manual/src/release-notes/rl-next-generated.md`.

Before:

    ## Breaking changes
    - Release note 1

      Many thanks to ...
    - Release note 2

      Many thanks to ...
    ## Fixes
    - Release note 3

      Many thanks to ...

After:

    ## Breaking changes

    - Release note 1

      Many thanks to ...

    - Release note 2

      Many thanks to ...

    ## Fixes

    - Release note 3

      Many thanks to ...

Change-Id: Ifea5af1bdce7b2315f3b46c17ebb945e99cfb36f
2025-05-07 14:38:00 -07:00
Commentator2.0 d22b8bd613 move nix fixture to own file
separating the nix fixture from the __init__.py file to increase
readability and overview over the existing fixtures

Change-Id: I7a86cb729942e83a95b9eabbb09563822f3f9e54
2025-05-07 20:02:32 +02:00
Commentator2.0 8fe8147850 Added functions for copying files into tempdir for declarative testing without side effects
Resolves: #601

Change-Id: I79661e96149fa133fe003c698efb47f4c54bbf1a
2025-05-07 16:04:06 +02:00
Linus Heckemann 08d7ddd6ca release notes: name SSH options that are no longer used
When I read the note, I wasn't sure what was meant by connection
sharing. This adds a reference to SSH documentation for clarity.

Change-Id: I1d6e5c53fb6a6fac8380210967f56d86f0333e55
2025-05-07 10:53:12 +02:00
vringar dbdf7c76e6 fix(rl-2.92): fix fmt shim script
Change-Id: I38aed40b3f6916fa7a6991ee0bb056be98d98497
2025-05-05 14:10:57 +00:00
Katalin Rebhan ca8d738df4 Add Boost and libarchive to libutil's public dependencies
Fixes missing include compilation errors.

Boost is included from lix/libutil/result.hh,
libarchive is included from lix/libutil/tarfile.hh

Change-Id: Id0000000e01fc695545d7ef83589ab7c41a92b61
2025-05-03 23:16:48 +02:00
Katalin Rebhan 643b9f3c62 Add missing includes
Change-Id: Id0000000da37acce2438e2a2a3937ffafe6fe90a
2025-05-03 23:16:48 +02:00
helleandLix Systems Gerrit 4e84fd9a00 Merge "Fix various links to anchors in documentation." into main 2025-05-02 11:45:29 +00:00
eldritch horrors c88ce60e25 libexpr: remove unnecessary position parameters
all of these are noPos in all call sites.

Change-Id: I2b74942483cd68dab8cc7c30f582a45a69598c4a
2025-05-02 10:57:15 +00:00
eldritch horrors 2059ccaad3 libexpr: remove positions from primops
they're always noPos and have caused quite some confusion.

fixes #781

Change-Id: I15d4210b1aab6ef5d1caabe2e10b45cf98cc4d47
2025-05-02 10:57:15 +00:00
jadeandLix Systems Gerrit 9a489c5e78 Merge "fix: Terminate daemons properly on Ctrl-C on macOS" into main 2025-05-02 00:09:43 +00:00
helleandjade f659a1e638 Fix various links to anchors in documentation.
These are updates to several links in the documentation that are not
currently pointing to existing anchors in the documentation, these were
found using the unfinished version of the mdbook-linkchecker we are
working on.

Fixes include pointing them to the correct anchor, inserting anchors (in
updated html5 style, though debatable) and in the case of the historical
release notes, removing them, fixing #809.

Change-Id: If4ef89dc89506aa131a764312d97a86179ccd6f5
2025-05-01 21:35:52 +00:00
Jade Lovelace 69ba3c92db fix: Terminate daemons properly on Ctrl-C on macOS
This was an absolute nightmare to diagnose. It turns out there's a
kernel bug: poll with events = POLLHUP will receive an event for NOT
POLLHUP internally in the kernel, delete their event subscription, and
then not receive events for any HUP later. lol! lmao!!

We choose to use plain old EVFILT_READ because the watched fd can be
either a socket or a pipe and it's preferable to eat some spurious
wakeups than have separate paths for those. The alternative is using
EVFILT_SOCK, a private API that's existed for years and which netty
uses for its sockets, but that doesn't work on pipes.

Fixes: https://git.lix.systems/lix-project/lix/issues/729
Change-Id: If72b5d7a39f00320a9acccdbe81121cdb1a04c45
2025-05-01 12:22:27 -07:00
eldritch horrors 6bd6a2416b libexpr: turn debug frames into exprs
this way we don't have to even check whether we need a debug frame when
the debugger isn't enabled. not doing this gives us an eval performance
improvement of roughly 7% on nixos system eval and 2% for `nix search`.

Change-Id: I1cdad3de61f865ea54d6e09d63a281688e828768
2025-05-01 14:28:05 +00:00
eldritch horrors dd2c54d9ad libexpr: generate debug info from a new visitor
Change-Id: I757a9e49dee99b27b0f153ca520c71ee3ecd347f
2025-05-01 14:28:05 +00:00
eldritch horrors 8145c2f5fe libexpr: implement bindVars with a visitor
we can now move debug info generation out of bindVars itself.

Change-Id: I54c88e14d030d2a19f16b57099990f2c3b4334aa
2025-05-01 14:28:05 +00:00
eldritch horrors a91efd63aa libexpr: add an expression visitor
we'll use this to implement bindVars better.

Change-Id: I620d9d1972acdeeee6e345c3128813e53d2074c6
2025-05-01 14:28:05 +00:00
eldritch horrors 8b619b134d libexpr: store inherit source exprs in a list, not vec
it's a surprise tool that will help us later!

Change-Id: Ieac785b00b3d14e5937c03fb2c97c918f4646e56
2025-05-01 14:28:05 +00:00
eldritch horrors 558d921dac libexpr: don't dynamic_cast Exprs after parsing is done
we'll want to wrap some exprs for debug purposes, and dynamic casts
cannot look through such wrappers. dedicated casting functions can.

Change-Id: I1fba0ec52d281a1b8de85a62e4948bfae536bcfc
2025-05-01 14:28:05 +00:00
eldritch horrors 2b4ef8dc11 libexpr: deduplicate set and let recursive env calculation
Change-Id: Ia7f066e1c02f99f071d10e00020869fac9a13db7
2025-05-01 14:28:05 +00:00
eldritch horrors 811542bb5f libexpr: remove COMMON_METHODS macro
it just pollutes the namespace.

Change-Id: Ib191f139916a03e5a56a07638cc5da6c80a87043
2025-05-01 14:28:05 +00:00
eldritch horrors 275b95c873 libexpr: make ExprInheritFrom not be an ExprVar
this was only a convenient fiction when it was introduced, but it is no longer.

Change-Id: I72c50e7774c75408c1a40aee7da22059474ba01d
2025-05-01 14:28:05 +00:00
alois31andLix Systems Gerrit a66c91e101 Merge "repl: only send overridden settings to nix subprocesses" into main 2025-04-30 06:22:14 +00:00
jadeandLix Systems Gerrit fde4121334 Merge "manual: link directly to gerrit for proposing changes" into main 2025-04-30 04:59:41 +00:00
Alois Wohlschlager f7c5cf6c62 repl: only send overridden settings to nix subprocesses
The nix-shell and nix-env subprocess spawned by :sh and :i respectively should
use the same settings as the nix repl they were launched from. Previously, this
was accomplished by sending them the entire configuration explicitly, causing
warnings like the following:

   warning: Ignoring setting 'auto-allocate-uids' because experimental feature 'auto-allocate-uids' is not enabled

In addition, if connected to the daemon, all other settings would be forwarded
to the daemon, further causing large quantities of warnings like the following
if the user is not trusted:

   warning: Ignoring the client-specified setting 'allow-symlinked-store', because it is a restricted setting and you are not a trusted user

Similarly to ece99fee23 (for the build hook) and
523965697d (for the post-build-hook), we will now
only send overridden settings to the subprocess. The resulting configuration is
the same, and all warnings are avoided because the client was already smart
enough to not send unchanged defaults to the daemon.

Fixes: https://git.lix.systems/lix-project/lix/issues/811

Change-Id: Icbe923cbe166aa3f462916f2b164285882564abd
2025-04-29 19:30:17 +02:00
eldritch horrors dad17a54f7 libexpr: remove Value::determinePos
it was mostly useless, and now it's entirely unused.

Change-Id: I015c83779a7f860e325796684639f05083a50676
2025-04-27 17:38:57 +00:00
eldritch horrors c068aeaf61 treewide: don't determinePos in autoCallFunction
add a position parameter to the autocaller instead, and pass it much
more accurate position information where we have it easily available

Change-Id: If2f1c3006ca3f2b413492842905d079a8b752542
2025-04-27 17:38:57 +00:00
eldritch horrors db738ddb14 libexpr: don't determinePos in derivationStrictInternal
errors for individual attrs should report the position of the attribute,
not the position of the set they were taken from (which we'll assume was
the intent here). this is already the case for most attributes, only the
the extra-special __structuredAttrs and __ignoreNulls weren't annotated.

this includes not calling atPos(v) on errors builders since the position
of v is always invalid. error messages are unchanged by this part of the
patch (and the caller adds a trace pointing to the derivation name too).

Change-Id: Ia3540f9ce1f2505275e49dd4e4336b2a59d5b336
2025-04-27 17:38:57 +00:00
eldritch horrors abc26ca0d2 libexpr: don't determinePos in ExprBlackHole::eval
`v` is invalid, its position (if it exists at all) will be stale.

Change-Id: I79147c92fe6b2b077a9aa4783231b7aac05ef9d2
2025-04-27 17:38:57 +00:00
eldritch horrors 859c8caae2 libcmd: don't determinePos in repl
replInitFilesFunction is always valid, but pointing to it is misleading
because the source is inaccessible. every replInit is better identified
by its path if it isn't a lambda; determinePos will return noPos anyway

Change-Id: I0b6fcd2f95f121a802c87cb1085d3a0b1c585aeb
2025-04-27 17:38:57 +00:00
eldritch horrors ff776f5091 libexpr: don't determinePos for primop calls
it's pointless, they don't have position information.

Change-Id: I21f49e4d26f9ed7bc3772157882c84447f8e6387
2025-04-27 17:38:57 +00:00
eldritch horrors bdebc3797b cmd/libexpr: don't determinePos in value-to-json
it's not useful. nix-instantiate will always point to the wrong location
because "at the toplevel" is not a position we can point to. all nesting
conversions will point to strange places: the *original* definition of a
lambda value (or partial applications thereof), or nowhere at all (since
only lambda values can have their positions determined in the formatter)

Change-Id: I56bd9e1cf3cae11b4198f148a141ca758e4fe8ac
2025-04-27 17:38:57 +00:00