aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops
AgeCommit message (Collapse)Author
2019-09-22Don't catch exceptions by valueEelco Dolstra
2019-09-20Add flags to disallow dirty Git trees and to turn off warningsEelco Dolstra
2019-09-05Use git+ prefix in flake URI schemesEelco Dolstra
Fixes #3045.
2019-08-30Turn flake inputs into an attrsetEelco Dolstra
Instead of a list, inputs are now an attrset like inputs = { nixpkgs.uri = github:NixOS/nixpkgs; }; If 'uri' is omitted, than the flake is a lookup in the flake registry, e.g. inputs = { nixpkgs = {}; }; but in that case, you can also just omit the input altogether and specify it as an argument to the 'outputs' function, as in outputs = { self, nixpkgs }: ... This also gets rid of 'nonFlakeInputs', which are now just a special kind of input that have a 'flake = false' attribute, e.g. inputs = { someRepo = { uri = github:example/repo; flake = false; }; };
2019-07-12fetchGit: Warn about dirty treesEelco Dolstra
2019-07-06Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-07-02Merge pull request #2582 from LnL7/fetchgit-refsEelco Dolstra
fetchGit: allow fetching explicit refs
2019-06-25Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2019-06-24Fix 32-bit overflow with --no-netEelco Dolstra
--no-net causes tarballTtl to be set to the largest 32-bit integer, which causes comparison like 'time + tarballTtl < other_time' to fail on 32-bit systems. So cast them to 64-bit first. https://hydra.nixos.org/build/95076624 (cherry picked from commit 29ccb2e9697ee2184012dd13854e487928ae4441)
2019-06-24CachedDownloadResult: Include store pathEelco Dolstra
Also, make fetchGit and fetchMercurial update allowedPaths properly. (Maybe the evaluator, rather than the caller of the evaluator, should apply toRealPath(), but that's a bigger change.) (cherry picked from commit 5c34d665386f4053d666b0899ecca0639e500fbd)
2019-06-24Fix abort in fromTOMLEelco Dolstra
Fixes #2969.
2019-06-21Fix 32-bit overflow with --no-netEelco Dolstra
--no-net causes tarballTtl to be set to the largest 32-bit integer, which causes comparison like 'time + tarballTtl < other_time' to fail on 32-bit systems. So cast them to 64-bit first. https://hydra.nixos.org/build/95076624
2019-06-05Move flake-related stuff to src/libexpr/flakeEelco Dolstra
2019-06-04Shorter syntax for referencing flake outputsEelco Dolstra
Fixes #2819.
2019-06-04Eliminate duplicate fetching of the top-level flakeEelco Dolstra
2019-06-04Add commentsEelco Dolstra
2019-06-04Make non-flake inputs lazyEelco Dolstra
Also add a proper test for non-flake inputs.
2019-06-04Check hashEelco Dolstra
2019-06-04Rename dep -> inputEelco Dolstra
Also use nlohmann::json range-based for.
2019-06-04Move LockFile and related types to a separate fileEelco Dolstra
2019-06-04Fix GC closure generationEelco Dolstra
2019-06-04Make flake input fetching lazyEelco Dolstra
As long as the flake input is locked, it is now only fetched when it is evaluated (e.g. "nixpkgs" is fetched when "inputs.nixpkgs.<something>" is evaluated). This required adding an "id" attribute to the members of "inputs" in lockfiles, e.g. "inputs": { "nixpkgs/release-19.03": { "id": "nixpkgs", "inputs": {}, "narHash": "sha256-eYtxncIMFVmOHaHBtTdPGcs/AnJqKqA6tHCm0UmPYQU=", "nonFlakeInputs": {}, "uri": "github:edolstra/nixpkgs/e9d5882bb861dc48f8d46960e7c820efdbe8f9c1" } } because the flake ID needs to be known beforehand to construct the "inputs" attrset. Fixes #2913.
2019-06-03Fix clang compilation errorEelco Dolstra
https://hydra.nixos.org/build/94332344 https://stackoverflow.com/questions/46114214/lambda-implicit-capture-fails-with-variable-declared-from-structured-binding
2019-06-03Made epochs more fine-grainedNick Van den Broeck
Fixes #2894
2019-05-31Automatically determine subdir for path flakesEelco Dolstra
This means that in a flake in a subdirectory of a Git repo, you can now do $ nix build rather than the inconvenient $ nix build ../..?dir=foo/bar
2019-05-31Allow bare flakerefs as installablesEelco Dolstra
So now $ nix build blender-bin works and builds the default package from that flake. You don't need to add a colon at the end anymore.
2019-05-31Fix reading the lockfile of a flake in a subdirectoryEelco Dolstra
2019-05-31Add operator << for LockFileEelco Dolstra
Useful for debugging.
2019-05-31Support 'dir' and other parameters in path flakerefsEelco Dolstra
2019-05-31Rename requires -> inputs, provides -> outputsEelco Dolstra
Issue #2828.
2019-05-29Remove makeFlakeValue()Eelco Dolstra
2019-05-29Put flake-related stuff in its own namespaceEelco Dolstra
2019-05-29Make unsupported flake attributes a fatal errorEelco Dolstra
2019-05-29Get last commit time of github flakesEelco Dolstra
2019-05-29Add date of last commit to SourceInfoEelco Dolstra
This is primarily useful for version string generation, where we need a monotonically increasing number. The revcount is the preferred thing to use, but isn't available for GitHub flakes (since it requires fetching the entire history). The last commit timestamp OTOH can be extracted from GitHub tarballs.
2019-05-28callFlake(): Emit source info attributes for non-flake dependenciesEelco Dolstra
2019-05-28Remove redundant resolvedRef fields since they're already in SourceInfoEelco Dolstra
2019-05-28Rename contentHash -> narHash for consistencyEelco Dolstra
2019-05-28Move hash into SourceInfo and rename to narHash to avoid ambiguityEelco Dolstra
2019-05-28Store SourceInfo in Flake and NonFlakeEelco Dolstra
This deduplicates some shared fields. Factoring out the commonality is useful in places like makeFlakeValue().
2019-05-28Merge branch 'nonFlakeRequiresTest' of https://github.com/CSVdB/nix into flakesEelco Dolstra
2019-05-28Added nonFlakeRequires testNick Van den Broeck
Fixes #2888
2019-05-28Fixed relative path parsingNick Van den Broeck
Fixed #2821
2019-05-23Register flake source trees as GC rootsEelco Dolstra
This ensures that flakes don't get garbage-collected, which is important to get nix-channel-like behaviour. For example, running $ nix build hydra: will create a GC root ~/.cache/nix/flake-closures/hydra -> /nix/store/xarfiqcwa4w8r4qpz1a769xxs8c3phgn-flake-closure where the contents/references of the linked file in the store are the flake source trees used by the 'hydra' flake: /nix/store/n6d5f5lkpfjbmkyby0nlg8y1wbkmbc7i-source /nix/store/vbkg4zy1qd29fnhflsv9k2j9jnbqd5m2-source /nix/store/z46xni7d47s5wk694359mq9ay353ar94-source Note that this in itself is not enough to allow offline use; the fetcher for the flakeref (e.g. fetchGit or downloadCached) must not fail if it cannot fetch the latest version of the file, so long as it knows a cached version. Issue #2868.
2019-05-23FlakeRef::to_string(): Check round tripEelco Dolstra
2019-05-23fetchGit: Don't barf if we can't update our Git cloneEelco Dolstra
Instead print a warning that we're continuing with the most recently fetched version.
2019-05-22Prevent the global registry from being GC'edEelco Dolstra
Issue #2868.
2019-05-22Refactor downloadCached() interfaceEelco Dolstra
2019-05-22Fetch the flake registry from the NixOS/flake-registry repoEelco Dolstra
2019-05-22Check the flake epochEelco Dolstra
Closes #2883.