aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/flake/flake.cc
AgeCommit message (Collapse)Author
2021-07-01fixup! flake.nixConfig: fix flake-registry config settingsAlexander Bantyev
2021-07-01flake.nixConfig: fix flake-registry config settingsAlexander Bantyev
Before this commit, nixConfig.flake-registry didn't have any real effect on the evaluation, since config was applied after inputs were evaluated. Change this behavior: apply the config in the beginning of flake::lockFile.
2021-06-29Keep the `isFlake` attribute for overriden inputsregnat
When overriding an input that isn’t a flake, mark the override as also not being a flake. Fix #3774
2021-01-27Add traces to errors while updating flake lock fileEelco Dolstra
Example: $ nix build --show-trace error: unable to download 'https://api.github.com/repos/NixOS/nixpkgs/commits/no-such-branch': HTTP error 422 ('') response body: { "message": "No commit found for SHA: no-such-branch", "documentation_url": "https://docs.github.com/rest/reference/repos#get-a-commit" } … while fetching the input 'github:NixOS/nixpkgs/no-such-branch' … while updating the flake input 'nixpkgs' … while updating the lock file of flake 'git+file:///home/eelco/Dev/nix'
2021-01-15Fix gcc10 buildJonathan Ringer
2021-01-08Upcase "Boolean" in Flake attribute type errorDanila
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2021-01-08Use switch statement instead of sequence of ifsDanila Fedorin
2021-01-08Allow Flake inputs to accept boolean and integer attributesDanila Fedorin
I believe that this makes it possible to do things like Git inputs with submodules, but it also likely applies to other input types from libfetchers.
2020-12-17Rename Value::normalType() -> Value::type()Silvan Mosberger
2020-12-17Rename ValueType -> InternalType, NormalType -> ValueTypeSilvan Mosberger
And Value::type to Value::internalType, such that type() can be used in the next commit to get the new ValueType
2020-12-12Add ValueType checking functions for types that have the same NormalTypeSilvan Mosberger
2020-12-12Use Value::normalType on all forced values instead of Value::typeSilvan Mosberger
2020-12-12Introduce NormalType for the normal type of a ValueSilvan Mosberger
This will be useful to abstract over the ValueType implementation details Make use of it already to replace the showType(ValueType) function
2020-11-26Move to separate fileEelco Dolstra
2020-11-26Record trusted/untrusted settings in ~/.local/share/nixEelco Dolstra
2020-11-26Ask for confirmation before allowing flake Nix configuration settingsEelco Dolstra
2020-10-26Allow nix.conf options to be set in flake.nixEelco Dolstra
This makes it possible to have per-project configuration in flake.nix, e.g. binary caches and other stuff: nixConfig.bash-prompt-suffix = "ngi# "; nixConfig.substituters = [ "https://cache.ngi0.nixos.org/" ];
2020-10-26Remove edition fieldEelco Dolstra
2020-10-06Remove 'using namespace fetchers'Eelco Dolstra
2020-09-27Miscellaneous spelling fixes in comments. (#4071)Kevin Quick
2020-09-24Remove redundant value checksPaul Opiyo
std::optional had redundant checks for whether it had a value. An object is emplaced either way so it can be dereferenced without repeating a value check
2020-09-23Remove unused Flake::vOutputs fieldEelco Dolstra
2020-09-22fixed typoujjwal
2020-07-14EvalCache: Ignore SQLite errorsEelco Dolstra
Fixes #3794.
2020-07-06Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2020-06-17getFlake -> builtins.getFlakeEelco Dolstra
2020-06-17Don't provide 'getFlake' if the 'flakes' feature is not enabledEelco Dolstra
2020-06-12Check 'follows' inputsEelco Dolstra
2020-06-11Represent 'follows' inputs explicitly in the lock fileEelco Dolstra
This fixes an issue where lockfile generation was not idempotent: after updating a lockfile, a "follows" node would end up pointing to a new copy of the node, rather than to the original node.
2020-06-10Preserve 'isFlake' when not updating a lock file entryEelco Dolstra
2020-06-10Combine lock file update messagesEelco Dolstra
2020-06-10Add helper function printInputPath()Eelco Dolstra
2020-06-09Fix applyOverride() for githubEelco Dolstra
2020-06-01fetchOrSubstituteTree improvementsMatthew Kenigsberg
Caches tree in addition to lockedRef, and explicitly writes out the logic for different combinations of cached/uncached flakes and indirect/resolved/locked flakes. This eliminates uneccessary calls to lookupInFlakeCache, fetchTree, maybeLookupFlake, and flakeCache.push_back
2020-05-30Move substitution into Input::fetch()Eelco Dolstra
Closes #3520.
2020-05-30Remove TreeInfoEelco Dolstra
The attributes previously stored in TreeInfo (narHash, revCount, lastModified) are now stored in Input. This makes it less arbitrary what attributes are stored where. As a result, the lock file format has changed. An entry like "info": { "lastModified": 1585405475, "narHash": "sha256-bESW0n4KgPmZ0luxvwJ+UyATrC6iIltVCsGdLiphVeE=" }, "locked": { "owner": "NixOS", "repo": "nixpkgs", "rev": "b88ff468e9850410070d4e0ccd68c7011f15b2be", "type": "github" }, is now stored as "locked": { "owner": "NixOS", "repo": "nixpkgs", "rev": "b88ff468e9850410070d4e0ccd68c7011f15b2be", "type": "github", "lastModified": 1585405475, "narHash": "sha256-bESW0n4KgPmZ0luxvwJ+UyATrC6iIltVCsGdLiphVeE=" }, The 'Input' class is now a dumb set of attributes. All the fetcher implementations subclass InputScheme, not Input. This simplifies the API. Also, fix substitution of flake inputs. This was broken since lazy flake fetching started using fetchTree internally.
2020-05-06Remove support for old lockfiles and the epoch/uri attributesEelco Dolstra
2020-04-27Improve path:// handlingEelco Dolstra
In particular, doing 'nix build /path/to/dir' now works if /path/to/dir is not a Git tree (it only has to contain a flake.nix file). Also, 'nix flake init' no longer requires a Git tree (but it will do a 'git add flake.nix' if it's a Git tree)
2020-04-20Fix typoEelco Dolstra
2020-04-16Use RootValueEelco Dolstra
2020-04-10Remove flake 'edition' fieldEelco Dolstra
Future editions of flakes or the Nix language can be supported by renaming flake.nix (e.g. flake-v2.nix). This avoids a bootstrap problem where we don't know which grammar to use to parse flake*.nix. It also allows a project to support multiple flake editions, in theory.
2020-04-06nix flake info: Show resolved URLEelco Dolstra
This is useful for finding out what a registry lookup resolves to, e.g $ nix flake info patchelf Resolved URL: github:NixOS/patchelf Locked URL: github:NixOS/patchelf/cd7955af31698c571c30b7a0f78e59fd624d0229
2020-04-03Make --override-input stickyEelco Dolstra
When we do something like 'nix flake update --override-input nixpkgs ...', the override is now kept on subsequent calls. (If you don't want this behaviour, you can use --no-write-lock-file.)
2020-04-03getFlake: In pure mode, check that the argument is an immutable flakerefEelco Dolstra
2020-03-30Move fetchers from libstore to libfetchersEelco Dolstra
2020-03-28Warn about --override-input / --update-input flags that don't match an inputEelco Dolstra
2020-03-27Improve lock file generationEelco Dolstra
This is now done in a single pass. Also fixes some issues when updating flakes with circular dependencies. Finally, when using '--recreate-lock-file --commit-lock-file', the commit message now correctly shows the differences.
2020-03-17Unified fetcher caching systemEelco Dolstra
2020-03-12Change the lock file to a graphEelco Dolstra
This enables support for cycles between flakes.
2020-03-11Move call-flake.nix into libexprEelco Dolstra