aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/derivations.hh
AgeCommit message (Collapse)Author
2021-03-17Remove unimplemented hashAlgoOptRobert Hensing
It was in the header but never implemented.
2021-02-26Simplify the case where the drv is a purely input-addressed oneregnat
2021-02-19Remove the drv resolution caching mechanismregnat
It isn't needed anymore now that don't need to eagerly resolve everything like we used to do. So we can safely get rid of it
2020-12-17Fix the detection of already built drv outputsregnat
PRs #4370 and #4348 had a bad interaction in that the second broke the fist one in a not trivial way. The issue was that since #4348 the logic for detecting whether a derivation output is already built requires some logic that was specific to the `LocalStore`. It happens though that most of this logic could be upstreamed to any `Store`, which is what this commit does.
2020-12-11Use the hash modulo in the derivation outputsregnat
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.
2020-11-19Make drv hash modulo memo table thread-safeJohn Ericson
Let's get one step closer to the daemon not needing to fork.
2020-10-27Allow non-CA derivations to depend on CA derivationsregnat
2020-10-09Remove stray DerivationOutputsAndPaths typeEelco Dolstra
2020-09-28Clarify comment a bitJohn Ericson
2020-09-16Ensure resolved CA derivations are writtenJohn Ericson
so we can link outputs to deriver and thus properly cache.
2020-09-16Merge remote-tracking branch 'upstream/master' into ca-floating-upstreamJohn Ericson
2020-09-15Rename `Derivation::pathOpt` to `Derivation::path`John Ericson
We no longer need the `*Opt` to disambiguate.
2020-09-04Fix querying outputs for CA derivations some moreJohn Ericson
If we resolve using the known path of a derivation whose output we didn't have, we previously blew up. Now we just fail gracefully, returning the map of all outputs unknown.
2020-09-04Merge remote-tracking branch 'obsidian/single-ca-drv-build' into ↵John Ericson
ca-floating-upstream
2020-09-04Fix some of the issues raised by @edolstraJohn Ericson
- More and better comments - The easier renames
2020-09-04Fix floating CA testsJohn Ericson
We will sometimes try to query the outputs of derivations we can't resolve. That's fine; it just means we don't know what those outputs are yet.
2020-08-28Merge remote-tracking branch 'obsidian/single-ca-drv-build' into ↵John Ericson
ca-floating-upstream
2020-08-28Merge remote-tracking branch 'upstream/master' into single-ca-drv-buildJohn Ericson
2020-08-27Merge pull request #3434 from Ericson2314/derivation-header-include-orderEelco Dolstra
Revise division of labor in deserialization of derivations
2020-08-24CA derivations that depend on other CA derivationsJohn Ericson
Co-authored-by: Théophane Hufschmitt <regnat@users.noreply.github.com>
2020-08-24Add constructor for BasicDerivation -> DerivationJohn Ericson
2020-08-23Merge remote-tracking branch 'obsidian/write-derivation-borrow' into HEADJohn Ericson
2020-08-23`writeDerivation` just needs a plain store referenceJohn Ericson
2020-08-21"Downstream placeholders" should not be store pathsJohn Ericson
Insead they should be opaque `/<hash>` like the placeholders we already have.
2020-08-18Merge remote-tracking branch 'upstream/master' into ↵John Ericson
derivation-header-include-order
2020-08-14Merge remote-tracking branch 'upstream/master' into single-ca-drv-buildJohn Ericson
2020-08-14Merge pull request #3875 from obsidiansystems/new-interface-for-path-pathOptEelco Dolstra
Offer a safer interface for path and pathOpt
2020-08-10Merge branch 'small-drv-serialize-cleanup' of github.com:obsidiansystems/nix ↵John Ericson
into single-ca-drv-build
2020-08-10Remove name parameter from `writeDerivation`John Ericson
The name is now stored with the derivation itself.
2020-08-07Squashed get CA derivations buildingJohn Ericson
2020-08-05Merge branch 'master' of github.com:NixOS/nix into ↵Carlo Nucera
new-interface-for-path-pathOpt
2020-08-05Reanme `DerivationType::Regular` defintion tooJohn Ericson
This is the one non-prefixed occurence
2020-08-05Make names more consistentJohn Ericson
2020-08-01Merge remote-tracking branch 'upstream/master' into ↵John Ericson
derivation-header-include-order
2020-07-28Offer a safer interface for pathOptCarlo Nucera
The new interface we offer provides a way of getting all the DerivationOutputs with the storePaths directly, based on the observation that it's the most common usecase.
2020-07-27Merge remote-tracking branch 'upstream/master' into ↵John Ericson
optional-derivation-output-storepath
2020-07-23Merge remote-tracking branch 'upstream/master' into misc-caJohn Ericson
2020-07-23Get rid of `basicDerivation::findOutput`John Ericson
It's a tiny function which is: - hardly worth abstrating over, and also only used once. - doesn't work once we get CA drvs I rewrote the one callsite to be forwards compatable with CA derivations, and also potentially more performant: instead of reading in the derivation it can ust consult the SQLite DB in the common case.
2020-07-20Merge branch 'ca-derivation-data-types' of github.com:obsidiansystems/nix ↵Carlo Nucera
into misc-ca
2020-07-20Add UnimplementedError to ease grepping for theseCarlo Nucera
2020-07-17Add `DerivationType::CAFloating`John Ericson
2020-07-17Merge branch 'ca-drv' of github.com:Ericson2314/nix into misc-caCarlo Nucera
2020-07-17Merge branch 'multi-output-hashDerivationModulo' of ↵Carlo Nucera
github.com:Ericson2314/nix into misc-ca
2020-07-16Small namespace fixCarlo Nucera
2020-07-15Merge branch 'master' of github.com:NixOS/nix into ↵Carlo Nucera
derivation-header-include-order
2020-07-12Change types to prepare the way for CA derivationsJohn Ericson
We've added the variant to `DerivationOutput` to support them, but made `DerivationOutput::path` partial to avoid actually implementing them. With this chage, we can all collaborate on "just" removing `DerivationOutput::path` calls to implement CA derivations.
2020-07-12Use more std::visit to prepare for new variantJohn Ericson
N.B. not using `std::visit` for fetchurl because there is no attempt to handle all the cases (e.g. no `else`) and lambda complicates early return.
2020-07-12DerivationOutputExtensional -> DerivationOutputInputAddressedJohn Ericson
Thanks @regnat for the great name.
2020-07-12String .drv suffix to create derivation nameJohn Ericson
2020-07-12std::string_view for new derivation name parametersJohn Ericson