aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-08-06Merge pull request #8760 from iFreilicht/fix-json-load-assertion-errorsJohn Ericson
Fix derivation load assertion errors
2023-08-05Fix derivation load assertion errorsFelix Uhl
When loading a derivation from a JSON, malformed input would trigger cryptic "assertion failed" errors. Simply replacing calls to `operator []` with calls to `.at()` was not enough, as this would cause json.execptions to be printed verbatim. Display nice error messages instead and give some indication where the error happened. *Before:* ``` $ echo 4 | nix derivation add error: [json.exception.type_error.305] cannot use operator[] with a string argument with number $ nix derivation show nixpkgs#hello | nix derivation add Assertion failed: (it != m_value.object->end()), function operator[], file /nix/store/8h9pxgq1776ns6qi5arx08ifgnhmgl22-nlohmann_json-3.11.2/include/nlohmann/json.hpp, line 2135. $ nix derivation show nixpkgs#hello | jq '.[] | .name = 5' | nix derivation add error: [json.exception.type_error.302] type must be string, but is object $ nix derivation show nixpkgs#hello | jq '.[] | .outputs = { out: "/nix/store/8j3f8j-hello" }' | nix derivation add error: [json.exception.type_error.302] type must be object, but is string ``` *After:* ``` $ echo 4 | nix derivation add error: Expected JSON of derivation to be of type 'object', but it is of type 'number' $ nix derivation show nixpkgs#hello | nix derivation add error: Expected JSON object to contain key 'name' but it doesn't $ nix derivation show nixpkgs#hello | jq '.[] | .name = 5' | nix derivation add error: Expected JSON value to be of type 'string' but it is of type 'number' $ nix derivation show nixpkgs#hello | jq '.[] | .outputs = { out: "/nix/store/8j3f8j-hello" }' | nix derivation add error: … while reading key 'outputs' error: Expected JSON value to be of type 'object' but it is of type 'string' ```
2023-08-03Merge pull request #8774 from NixLayeredStore/experimental-storesThéophane Hufschmitt
Add infra for experimental store implementations
2023-08-02Add infra for experimental store implemenationsJohn Ericson
This is analogous to that for experimental settings and flags that we have also added as of late.
2023-08-02Merge pull request #8765 from NixLayeredStore/refactor-store-verifyJohn Ericson
More cleanups for `LocalStore::verifyPath`
2023-08-02Add comment explaining the use of `readDirectory(realStoreDir)`John Ericson
2023-08-02local-store verifying: Rename `store` to something more clearJohn Ericson
It is not a `Store` but a `StorePathSet`.
2023-08-02Merge pull request #8762 from obsidiansystems/split-out-eval-settingsEelco Dolstra
Move evaluator settings (type and global) to separate file/header
2023-08-02Merge pull request #8767 from NixOS/stop-removing-labelsEelco Dolstra
labeler: Stop removing labels
2023-07-31labeler: Stop removing labelsRobert Hensing
> Whether or not to remove labels when matching files are reverted or no longer changed by the PR https://github.com/actions/labeler#inputs
2023-07-31`LocalStore::verifyPath`: Try to clarify data flow with more scopesJohn Ericson
It was initially unclear to me which of these are temporary state for the verify paths computation, and which of these are the results of that computation to be used in the rest of the function. Now, it is clear, and enforced.
2023-07-31`LocalStore::verifyPath`: Use `StorePathSet` for `store` local varJohn Ericson
We don't care about non-store-paths in there (things like `.links`, are, in fact, allowed). So let's just skip them up front and be more strongly typed.
2023-07-31Merge pull request #8754 from NixLayeredStore/refactor-store-verifyJohn Ericson
Refactor `verifyPath` to take `StorePath` instead of `Path`
2023-07-31Refactor verifyPath to take StorePath instead of Path.Ben Radford
This way we avoid having to convert from Path to StorePath and vice versa in the body of verifyPath.
2023-07-31Move evaluator settings (type and global) to separate file/headerJohn Ericson
2023-07-31Merge pull request #8607 from hercules-ci/toJSON-traceEelco Dolstra
toJSON: Add attribute path to trace
2023-07-31toJSON: Add attribute path to traceRobert Hensing
2023-07-25Add `parseFlakeRef` and `flakeRefToString` builtins (#8670)Alex Ameen
Over the last year or so I've run into several use cases where I need to parse and/or serialize URLs for use by `builtins.fetchTree` or `builtins.getFlake`, largely in order to produce _lockfile-like_ files for lang2nix frameworks or tools which use `nix` internally to drive builds. I've gone through the painstaking process of emulating `nix::FlakeRef::fromAttrs` and `nix::parseFlakeRef` several times with mixed success; but these are difficult to create and even harder to maintain if I hope to stay aligned with changes to the real parser/serializer. I understand why adding new `builtins` isn't something we want to do flagrantly. I'm recommending this addition simply because I keep encountering use cases where I need to parse/serialize these URIs in `nix` expressions, and I want a reliable solution. Co-authored-by: Eelco Dolstra <edolstra@gmail.com> Co-authored-by: John Ericson <git@JohnEricson.me>
2023-07-25Merge pull request #8741 from ncfavier/clarify-rl-notes-nested-attrs-mergeJohn Ericson
doc: clarify release notes about nested attribute merges
2023-07-25doc: clarify release notes about nested attribute mergesNaïm Favier
2023-07-24Merge pull request #8736 from NixOS/bump-2.18.0Eelco Dolstra
Bump version to 2.18
2023-07-24Bump versionEelco Dolstra
2023-07-24Merge pull request #8734 from NixOS/release-notesEelco Dolstra
2.17 release notes
2023-07-24Release notesEelco Dolstra
2023-07-24Merge pull request #8243 from obsidiansystems/indirect-root-storeJohn Ericson
Refactor `Store` hierarchy with a new `IndirectRootStore` interface
2023-07-24Clean up store hierarchy with `IndirectRootStore`John Ericson
See the API doc comments for details.
2023-07-24Make `RemoteStore::ConnectionHandle` part of class and exposeJohn Ericson
Will need to do subclass-specific implementations in the next commit. This isn't because there will be multiple variations of the daemon protocol (whew!) but because different clients pick and choose different parts to use.
2023-07-24Move `Store::Params` typedef to `StoreConfig::Params`John Ericson
This is because `StoreConfig` also uses it.
2023-07-23Merge pull request #8664 from ncfavier/merge-dynamic-attrsJohn Ericson
parser: merge nested dynamic attributes
2023-07-21parser: merge nested dynamic attributesNaïm Favier
Fixes https://github.com/NixOS/nix/issues/7115
2023-07-21Merge pull request #8724 from ↵John Ericson
obsidiansystems/queryPartialDerivationOutputMap-evalStore Give `queryPartialDerivationOutputMap` an `evalStore` parameter
2023-07-21Merge pull request #8650 from obsidiansystems/content-address-simplerEelco Dolstra
Simplify `ContentAddress`
2023-07-20Give `queryPartialDerivationOutputMap` an `evalStore` parameterJohn Ericson
This makes it more useful. In general, the derivation will be in one store, and the realisation info is in another. This also helps us avoid duplication. See how `resolveDerivedPath` is now simpler because it uses `queryPartialDerivationOutputMap`. In #8369 we get more flavors of derived path, and need more code to resolve them all, and this problem only gets worse. The fact that we need a new method to deal with the multiple dispatch is unfortunate, but this generally relates to the fact that `Store` is a sub-par interface, too bulky/unwieldy and conflating separate concerns. Solving that is out of scope of this PR. This is part of the RFC 92 work. See tracking issue #6316
2023-07-20Remove unneeded copyJohn Ericson
It appeared in 8eb73a87245acf9d93dc401831b629981864fa58 (by me!) without justification.
2023-07-20Tighten `#include`s: `DerivedPath` doesn't care about `Realisation`John Ericson
2023-07-20fix broken links (#8722)Valentin Gagarin
2023-07-20Merge pull request #8723 from fricklerhandwerk/doc-constantsEelco Dolstra
revert anchor prefix for builtin constants
2023-07-20revert anchor prefix for builtin constantsValentin Gagarin
the original change broke many pre-existing anchor links. also change formatting of the constants listing slightly: - the type should not be part of the anchor - add highlight to the "impure only" note
2023-07-19Merge pull request #8680 from NixLayeredStore/test-groupsJohn Ericson
Introduce notion of a test group, use for CA tests
2023-07-19clarify wording on args@ default handling (#8596)Valentin Gagarin
* clarify wording on args@ default handling Most importantly use shorter sentences and emphasize the key point that defaults aren't taken into account Co-authored-by: Robert Hensing <roberth@users.noreply.github.com> Co-authored-by: John Ericson <git@JohnEricson.me>
2023-07-19Merge pull request #7973 from fricklerhandwerk/remove-channelsRobert Hensing
remove the Channels section
2023-07-19Merge pull request #8315 from fricklerhandwerk/doc-systemRobert Hensing
add information on the system type string
2023-07-19fix broken linksValentin Gagarin
2023-07-19expand on the `extra-platforms` optionValentin Gagarin
2023-07-19mention `extra-platforms`Valentin Gagarin
2023-07-19fix wordingValentin Gagarin
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-19do not mention output attributesValentin Gagarin
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-19note that naming convention is from AutotoolsValentin Gagarin
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-19add cross-linksValentin Gagarin
2023-07-19expand on the system type in hacking guideValentin Gagarin