forked from NixOS/nix
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Nlohmann optional #1
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This adds a new configuration option to Nix, `always-allow-substitutes`, whose effect is simple: it causes the `allowSubstitutes` attribute in derivations to be ignored, and for substituters to always be used. This is extremely valuable for users of Nix in CI, where usually `nix-build-uncached` is used. There, derivations which disallow substitutes cause headaches as the inputs for building already-cached derivations need to be fetched to spuriously rebuild some simple text file. This option should be a good middle-ground, since it doesn't imply rebuilding the world, such as the approach I took in NixOS/nixpkgs#221048
Before this commit, the output of `nix flake metadata` in nix repo looked like this: ... Last modified: 2023-07-09 16:00:16 Inputs: ├───flake-compat: github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9 ├───lowdown-src: github:kristapsdz/lowdown/d2c2b44ff6c27b936ec27358a2653caaef8f73b8 ├───nixpkgs: github:NixOS/nixpkgs/04a75b2eecc0acf6239acf9dd04485ff8d14f425 └───nixpkgs-regression: github:NixOS/nixpkgs/215d4d0fd80ca5163643b03a33fde804a29cc1e2 This commit changes that to: ... Last modified: 2023-07-09 16:00:16 Inputs: ├───flake-compat: github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9 (2023-01-17 11:47:33) ├───lowdown-src: github:kristapsdz/lowdown/d2c2b44ff6c27b936ec27358a2653caaef8f73b8 (2021-10-06 10:00:07) ├───nixpkgs: github:NixOS/nixpkgs/04a75b2eecc0acf6239acf9dd04485ff8d14f425 (2022-12-08 01:04:00) └───nixpkgs-regression: github:NixOS/nixpkgs/215d4d0fd80ca5163643b03a33fde804a29cc1e2 (2022-01-24 19:20:45)
To start, it is just a clone of the common protocol. But now that we have the separate protocol implementations, we can add versioning information without the versions of one protocol leaking into another. Using the infrastructure from the previous commit, we don't have to duplicate code for shared behavior. Motivation: No more perverse incentives. [0] did some awkward things because the serialisers did not store the version. I don't want anyone making changes to be pushed towards keeping the serialization logic with the core data types just because it's easier or the alternative is tedious. The actual versioning of the Worker and Serve protocol serialisers (Common remains unversioned as the underlying mini-protocols are not versioned) will happen in subsequent commits / PRs. [0]: fe1f34f
Co-authored-by: Valentin Gagarin <[email protected]> Supersedes NixOS#6740
Two changes: * The (probably unintentional) hack to handle paths as tarballs has been removed. This is almost certainly not what users expect and is inconsistent with flakeref handling everywhere else. * The hack to support scp-style Git URLs has been moved to the Git fetcher, so it's now supported not just by fetchTree but by flake inputs.
fetchTree cleanup
feat: add always-allow-substitutes
Introduce separate Serve protocol serialisers
Progress breaking up `flake.nix` by introducing separate `default.nix` files which make sense on their own. (This one is a regular `callPackage`-able package.)
nix flakes metadata: Show lastModified timestamp for each input
Factor out Perl bindings Nix package
Thanks @ncfavier for catching these regressions in my PR. Co-Authored-By: Naïm Favier <[email protected]>
…etions Improve tests and docs prior to refactoring completions
- Remove some stray saved error messages that didn't correspond to any test, because they were renamed in d11faa0. - Need `--eval` in test failure test in order to get in "read-only" mode where we don't try to write to the store. (The other tests already do this.) - Need `--strict` so top-level attribute sets are still forced, like they are without `--eval`.
This change results in an error thrown as opposed to segfaulting due to stack overflow. Fixes NixOS#9144
Fix broken move
Fix/remove some bad std::moves
explicitly set meta.mainProgram
primops: add builtins.convertHash
GitHub now displays a banner and has a dedicated page[1] for good first issues, but that uses a different label name as we had in place. I renamed the label on GitHub, this is updating the link. [1]: https://github.com/NixOS/nix/contribute
this also adds a hint to contributors about making far-reaching changes, complementing the recent update to the maintainers' handbook on how to deal with those.
* doc: generic closure supported key types Co-authored-by: Valentin Gagarin <[email protected]>
add a link to all maintainer meeting notes
…label update link to label
link to popular issues from the contributing guide
Co-authored-by: Valentin Gagarin <[email protected]> Co-authored-by: Robert Hensing <[email protected]>
Co-authored-by: Valentin Gagarin <[email protected]>
I'm sure that we'll adjust the implementation over time, but this at least discerns between an apple silicon bare metal machine and a tart VM.
…system-feature libstore: Add `apple-virt` to system features when available
Add protocol versions to `{Worker,Serve}Proto::*Conn`
It is unused since 8e0946e removed support for the repeat and enforce-determinism options.
It is dead code. It was added in 8e0946e as part of the repeated / enforce-determinism feature, but that was removed in 8fdd156. It is not good because it skips many fields. For testing purposes we will soon want to add a new one that doesn't skip fields, but we want to make sure making == sensitive to those fields won't change how Nix works. Proving in this commit that the old version is dead code achieves that.
Input::hasAllInfo(): Remove
* docker: publish images to ghcr.io docker.com announced their intention to remove the free plan used by OSS. The nixos/nix image is essential to various CI runs to build with nix. To provide a continuity plan, this commit pushes the image to ghcr.io as well. Co-authored-by: Sandro <[email protected]>
Delete dead code
Input: Remove 'direct' field
Remove fetchers::Tree and move tarball-related stuff into its own header
Also use fancier formatting so the example blocks are easier to discern from the description. Co-authored-by: John Ericson <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.