Age | Commit message (Collapse) | Author |
|
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.
|
|
Clang compiles faster (121s vs 156s for GCC 7) so it's a bit nicer for
development.
|
|
https://hydra.nixos.org/build/94332344
https://stackoverflow.com/questions/46114214/lambda-implicit-capture-fails-with-variable-declared-from-structured-binding
|
|
Made epochs more fine-grained
|
|
Fixes #2894
|
|
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.)
|
|
|
|
|
|
Subdirectory improvements
|
|
|
|
Add .github/FUNDING.yml
|
|
|
|
|
|
|
|
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
|
|
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.
|
|
|
|
Useful for debugging.
|
|
|
|
|
|
Rename requires -> inputs, provides -> outputs
|
|
Issue #2828.
|
|
Add "nix flake check"
|
|
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
```
|
|
Replace `type` with `command -v` in install script
|
|
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.
|
|
Nixpkgs doesn't provide a clean "packages" set yet, so until that's
the case, look for packages in "legacyPackages" as well.
|
|
|
|
|
|
|
|
This evaluates all the 'provides' of a flake and builds the 'check'
attributes.
|
|
|
|
In POSIX sh, `type` is undefined.
cf. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html#tag_20_22_04
|
|
|
|
|
|
|
|
|
|
cpptoml now parses almost all examples from the spec.
|
|
Turns out we were mis-parsing single-quoted attributes, e.g. 'key2'.
|
|
|
|
Expose lastModified attribute
|
|
|
|
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.
|
|
Store SourceInfo in Flake/NonFlake
|
|
|
|
|
|
|
|
|