Age | Commit message (Collapse) | Author |
|
|
|
if attr-set pos == noPos
|
|
This now takes care of providing positioning for both the faulting value
and the faulting function call in case of an error.
|
|
When working on some more complex Nix code, there are sometimes rather
unhelpful or misleading error messages, especially if coerce-errors are
thrown.
This patch is a first steps towards improving that. I'm happy to file
more changes after that, but I'd like to gather some feedback first.
To summarize, this patch does the following things:
* Attrsets (a.k.a. `Bindings` in `libexpr`) now have a `Pos`. This is
helpful e.g. to identify which attribute-set in `listToAttrs` is
invalid.
* The `Value`-struct has a new method named `determinePos` which tries
to guess the position of a value and falls back to a default if that's
not possible.
This can be used to provide better messages if a coercion fails.
* The new `determinePos`-API is used by `builtins.concatMap` now. With
that change, Nix shows the exact position in the error where a wrong
value was returned by the lambda.
To make sure it's still obvious that `concatMap` is the problem,
another stack-frame was added.
* The changes described above can be added to every other `primop`, but
first I'd like to get some feedback about the overall approach.
|
|
* The position of the `name`-attribute appears in the trace.
* If e.g. `meta` has no `outPath`-attribute, a `cannot coerce set to
string` error will be thrown where `pos` points to `name =` which is
highly misleading.
|
|
add tests for zstd compression
|
|
Resolve a protocol issue that caused the daemon to endlessly wait for
some information that the client doesn't ever send
|
|
Otherwise Nix may look to invalid locations for channels.
|
|
NixOS/dependabot/github_actions/cachix/cachix-action-v10
Bump cachix/cachix-action from v9 to v10
|
|
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from v9 to v10.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v9...73e75d1a0cd4330597a571e8f9dedb41faa2fc4e)
Signed-off-by: dependabot[bot] <support@github.com>
|
|
|
|
This reverts commit fc6bfb261d50102016ed812ecf9949d41fe539f7.
Fixes #4672.
|
|
Fixes #4673.
|
|
|
|
If there were many top-level goals (which are not destroyed until the
very end), commands like
$ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' \
/run/current-system --no-check-sigs --substitute-on-destination
could fail with "Too many open files". So now we do some explicit
cleanup from amDone(). It would be cleaner to separate goals from
their temporary internal state, but that would be a bigger refactor.
|
|
This reverts commit 5926200db09ca4d0c5769edf24a3cf2e9f472d23.
|
|
This reverts commit 4145cd2da002e1bd8affa0392c80118eabe58e3c.
|
|
Use `DerivedPath` for `buildPaths` and `ensurePath`
|
|
|
|
|
|
This allows us to namespace its constructors under it.
|
|
|
|
This makes for better types errors and allows us to give it methods.
|
|
|
|
This avoids an ambiguity where the `StorePathWithOutputs { drvPath, {}
}` could mean "build `brvPath`" or "substitute `drvPath`" depending on
context.
It also brings the internals closer in line to the new CLI, by
generalizing the `Buildable` type is used there and makes that
distinction already.
In doing so, relegate `StorePathWithOutputs` to being a type just for
backwards compatibility (CLI and RPC).
|
|
These are by no means part of the notion of a store, but rather are
things that happen to use stores. (Or put another way, there's no way
we'd make them virtual methods any time soon.) It's better to move them
out of that too-big class then.
Also, this helps us remove StorePathWithOutputs from the Store interface
altogether next commit.
|
|
In the following commits it will become less prevalent.
|
|
|
|
bump actions
|
|
|
|
[prerequisites]: add JSON lib dependency
|
|
|
|
|
|
|
|
|
|
|
|
fetchGit: don't prefix "refs/heads/" on ref = "HEAD"
|
|
|
|
This fixes builtins.fetchGit { url = ...; ref = "HEAD"; }, that works in
stable nix (v2.3.10), but is broken in nix master:
$ ./result/bin/nix repl
Welcome to Nix version 2.4pre19700101_dd77f71. Type :? for help.
nix-repl> builtins.fetchGit { url = "https://github.com/NixOS/nix"; ref = "HEAD"; }
fetching Git repository 'https://github.com/NixOS/nix'fatal: couldn't find remote ref refs/heads/HEAD
error: program 'git' failed with exit code 128
The documentation for builtins.fetchGit says ref = "HEAD" is the
default, so it should also be supported to explicitly pass it.
I came across this issue because poetry2nix can use ref = "HEAD" in some
situations.
Fixes #4674.
|
|
Add a CI check to ensure compatibility with an old daemon
|
|
|
|
When multiple threads try to upsert the same file, this could fail.
Fixes #4667.
|
|
Fixes #4671.
|
|
fix nixbld user name/uid for macOS/darwin
|
|
Use the appropriate config dir for the registry
|
|
Added Debian-based OS's profiles
|
|
|
|
improve man page for nix.conf (builders)
|
|
Fix Nix to properly work with stores using a scoped IPv6 address
|
|
obsidiansystems/build-result-marshalling-cleanup-lighter
Fix typos in the last PR #4656
|