Comparing changes
Open a pull request
base repository: NixOS/nix
base: 2283fbc0d743
head repository: NixOS/nix
compare: f6c1a62867e3
- 10 commits
- 13 files changed
- 2 contributors
Commits on Dec 11, 2020
-
Use the hash modulo in the derivation outputs
Rather than storing the derivation outputs as `drvPath!outputName` internally, store them as `drvHashModulo!outputName` (or `outputHash!outputName` for fixed-output derivations). This makes the storage slightly more opaque, but enables an earlier cutoff in cases where a fixed-output dependency changes (but keeps the same output hash) − same as what we already do for input-addressed derivations.
-
Restrict the operations on drv outputs in recursive Nix
There's currently no way to properly filter them, so disallow them altogether instead.
Commits on Dec 16, 2020
-
Better detect when
buildPaths
would be a no-op`buildPaths` can be called even for stores where it's not defined in case it's bound to be a no-op. The “no-op detection” mechanism was only detecting the case wher `buildPaths` was called on a set of (non-drv) paths that were already present on the store. This commit extends this mechanism to also detect the case where `buildPaths` is called on a set of derivation outputs which are already built on the store. This only works with the ca-derivations flag. It could be possible to extend this to also work without it, but it would add quite a bit of complexity, and it's not used without it anyways.
-
Fix BinaryCacheStore::registerDrvOutput
Was crashing because coercing a json document into a string is only valid if the json is a string, otherwise we need to call `.dump()`
-
Merge pull request #4371 from NixOS/ca/fix-remote-store-registerDrvOu…
…tput Fix BinaryCacheStore::registerDrvOutput
-
Merge pull request #4348 from NixOS/ca/use-hashmodulo
Use the hash modulo in the derivation outputs
-
Don't ignore an absent drv file in queryPartialDrvOutputMap
This ignore was here because `queryPartialDrvOutputMap` was used both 1. as a cache to avoid having to re-read the derivation (when gc-ing for example), and 2. as the source of truth for ca realisations The use-case 2. required it to be able to work even when the derivation wasn't there anymore (see #4138). However, this use-case is now handled by `queryRealisation`, meaning that we can safely error out if the derivation isn't there anymore
-
Merge pull request #4373 from NixOS/ca/fix-queryPartialDrvOutputMap-w…
…hen-no-derivation Don't ignore an absent drv file in queryPartialDrvOutputMap
-
Merge pull request #4370 from NixOS/ca/more-precise-build-noop
Better detect when `buildPaths` would be a no-op
-
Add a new Cmd type working on RealisedPaths
Where a `RealisedPath` is a store path with its history, meaning either an opaque path for stuff that has been directly added to the store, or a `Realisation` for stuff that has been built by a derivation This is a low-level refactoring that doesn't bring anything by itself (except a few dozen extra lines of code :/ ), but raising the abstraction level a bit is important on a number of levels: - Commands like `nix build` have to query for the realisations after the build is finished which is fragile (see 27905f1 for example). Having them oprate directly at the realisation level would avoid that - Others like `nix copy` currently operate directly on (built) store paths, but need a bit more information as they will need to register the realisations on the remote side
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 2283fbc0d743...f6c1a62867e3