Eelco Dolstra
ce225615c3
Eliminate duplicate fetching of the top-level flake
2019-06-04 21:10:53 +02:00
Eelco Dolstra
087530dec4
Add comments
2019-06-04 21:07:55 +02:00
Eelco Dolstra
4d31cf83f2
Update flake.lock
2019-06-04 20:57:18 +02:00
Eelco Dolstra
1e53a07712
Make non-flake inputs lazy
...
Also add a proper test for non-flake inputs.
2019-06-04 20:56:42 +02:00
Eelco Dolstra
1c5067b9a7
Check hash
2019-06-04 20:35:35 +02:00
Eelco Dolstra
45b5c606ac
Don't register invalid paths as GC roots
...
Unfortunately this doesn't work. Maybe we should keep separate roots
for each path.
2019-06-04 20:34:08 +02:00
Eelco Dolstra
4ec1a9ab40
Fix test
2019-06-04 20:33:49 +02:00
Eelco Dolstra
5fe7be2409
Rename dep -> input
...
Also use nlohmann::json range-based for.
2019-06-04 20:08:13 +02:00
Eelco Dolstra
9e99b5205c
Move LockFile and related types to a separate file
2019-06-04 20:01:21 +02:00
Eelco Dolstra
278114d559
Fix GC closure generation
2019-06-04 19:45:16 +02:00
Eelco Dolstra
6dbd5c26e6
Make flake input fetching lazy
...
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-04 19:17:03 +02:00
Eelco Dolstra
c7c562416c
shell.nix: Use clang by default
...
Clang compiles faster (121s vs 156s for GCC 7) so it's a bit nicer for
development.
2019-06-04 13:44:12 +02:00
Eelco Dolstra
653c4e439b
Fix clang compilation error
...
https://hydra.nixos.org/build/94332344
https://stackoverflow.com/questions/46114214/lambda-implicit-capture-fails-with-variable-declared-from-structured-binding
2019-06-03 21:51:06 +02:00
Eelco Dolstra
412684f9dc
Merge pull request #2914 from CSVdB/finegrainedEpochs
...
Made epochs more fine-grained
2019-06-03 15:36:43 +02:00
Nick Van den Broeck
d9a6a75ed2
Made epochs more fine-grained
...
Fixes #2894
2019-06-03 14:47:47 +02:00
Eelco Dolstra
507c150034
Merge pull request #2909 from NixOS/flake-apps
...
Add 'nix app' command
2019-06-03 09:34:36 +02:00
Eelco Dolstra
5fbd9fee0b
Add 'nix app' command
...
This is like 'nix run', except that the command to execute is defined
in a flake output, e.g.
defaultApp = {
type = "app";
program = "${packages.blender_2_80}/bin/blender";
};
Thus you can do
$ nix app blender-bin
to start Blender from the 'blender-bin' flake.
In the future, we can extend this with sandboxing. (For example we
would want to be able to specify that Blender should not have network
access by default and should only have access to certain paths in the
user's home directory.)
2019-06-03 09:27:03 +02:00
Eelco Dolstra
fb692e5f7b
Bindings: Add convenience method for requiring an attribute
2019-06-03 09:27:03 +02:00
Eelco Dolstra
a2f86ac647
Merge remote-tracking branch 'origin/master' into flakes
2019-06-03 09:22:19 +02:00
Eelco Dolstra
95bdfaa8bd
Merge pull request #2907 from NixOS/subdir
...
Subdirectory improvements
2019-06-03 09:21:31 +02:00
Eelco Dolstra
aec545c20b
Fix segfault in builtin fetchurl with hashed mirrors + SRI hashes
2019-06-01 15:27:43 +02:00
Eelco Dolstra
5450af5d0d
Merge pull request #2910 from worldofpeace/funding
...
Add .github/FUNDING.yml
2019-06-01 09:56:48 +02:00
worldofpeace
2d34028b1e
Add .github/FUNDING.yml
2019-05-31 22:19:46 -04:00
Eelco Dolstra
15f241775a
Doh
2019-05-31 23:21:53 +02:00
Eelco Dolstra
8cb3bbd504
Fix handling of bare flakerefs containing a colon
2019-05-31 22:17:39 +02:00
Eelco Dolstra
8abb8647a3
Automatically determine subdir for path flakes
...
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-31 21:52:02 +02:00
Eelco Dolstra
ccb1bad612
Allow bare flakerefs as installables
...
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-31 21:42:23 +02:00
Eelco Dolstra
7adb10d29b
Fix reading the lockfile of a flake in a subdirectory
2019-05-31 20:12:59 +02:00
Eelco Dolstra
9169046e64
Add operator << for LockFile
...
Useful for debugging.
2019-05-31 20:10:56 +02:00
Eelco Dolstra
b971e406de
Support 'dir' and other parameters in path flakerefs
2019-05-31 19:01:11 +02:00
Eelco Dolstra
63c5c91cc0
Show hash mismatch warnings in SRI format
2019-05-31 18:48:28 +02:00
Eelco Dolstra
134942f56a
Merge pull request #2904 from NixOS/flake-terminology
...
Rename requires -> inputs, provides -> outputs
2019-05-31 10:00:51 +02:00
Eelco Dolstra
094539ef4a
Rename requires -> inputs, provides -> outputs
...
Issue #2828 .
2019-05-31 09:59:48 +02:00
Eelco Dolstra
65e88694c2
Merge pull request #2903 from NixOS/check-flake
...
Add "nix flake check"
2019-05-31 09:57:04 +02:00
Eelco Dolstra
2b62928905
Merge pull request #2905 from ln-nl/patch-1
...
release-common: fix build with `config.allowAliases = false`
2019-05-31 09:56:47 +02:00
ln-nl
3b1cc8b0cb
release-common: fix build with config.allowAliases = false
...
```sh
> nix build -f release.nix build.x86_64-linux
error: undefined variable 'docbook5_xsl' at /vcs/nix/release-common.nix:45:7
```
2019-05-30 18:08:33 +03:00
Eelco Dolstra
d8abee9bc6
Merge pull request #2892 from johannes-climacus/master
...
Replace `type` with `command -v` in install script
2019-05-30 14:15:23 +02:00
Eelco Dolstra
49436bdbb7
nix flake info --json: List the "provides"
...
It also lists the contents of "checks" and "packages".
For example:
$ nix flake info --json | jq
{
"branch": "HEAD",
"description": "The purely functional package manager",
"epoch": 2019,
"id": "nix",
"lastModified": 1559161142,
"path": "/nix/store/2w2qla8735dbxah8gai8r1nsbf5x4f5d-source",
"provides": {
"checks": {
"binaryTarball": {},
"nix-copy-closure": {},
"perlBindings": {},
"remoteBuilds": {},
"setuid": {}
},
"defaultPackage": {},
"devShell": {},
"hydraJobs": {},
"packages": {
"nix": {},
"nix-perl-bindings": {}
}
},
"revCount": 6955,
"revision": "8cb24e04e8b6cc60e2504733afe78e0eadafcd98",
"uri": "/home/eelco/Dev/nix"
}
Fixes #2820 .
2019-05-29 22:22:28 +02:00
Eelco Dolstra
3488fa7c6c
Hack: Use legacyPackages from Nixpkgs
...
Nixpkgs doesn't provide a clean "packages" set yet, so until that's
the case, look for packages in "legacyPackages" as well.
2019-05-29 22:22:28 +02:00
Eelco Dolstra
b70fc8f30c
flake.nix: Add more checks
2019-05-29 22:22:28 +02:00
Eelco Dolstra
a9d3524e1f
nix flake check: Use read-only mode if we're not building
2019-05-29 21:00:44 +02:00
Eelco Dolstra
0e32b32fa3
nix flake check: Check defaultPackage, devShell and packages
2019-05-29 20:57:08 +02:00
Eelco Dolstra
e0aaf05f4f
Add 'nix flake check' command
...
This evaluates all the 'provides' of a flake and builds the 'check'
attributes.
2019-05-29 17:25:41 +02:00
Eelco Dolstra
de00ed15d3
Doh
2019-05-29 16:30:00 +02:00
Johannes Climacus
a8251ba2ed
Replace type
with command -v
in install script
...
In POSIX sh, `type` is undefined.
cf. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html#tag_20_22_04
2019-05-29 10:08:21 -04:00
Eelco Dolstra
6ae4437acb
Remove makeFlakeValue()
2019-05-29 15:44:48 +02:00
Eelco Dolstra
6e4a8c47f4
Put flake-related stuff in its own namespace
2019-05-29 15:31:07 +02:00
Eelco Dolstra
c356d034f3
Make unsupported flake attributes a fatal error
2019-05-29 15:12:22 +02:00
Eelco Dolstra
6636808e90
Merge remote-tracking branch 'origin/master' into flakes
2019-05-29 12:36:44 +02:00
Eelco Dolstra
17ef3e6f41
Enable more fromTOML tests
...
cpptoml now parses almost all examples from the spec.
2019-05-29 12:22:52 +02:00