zig-overlay/templates/init/flake.nix
Erik Arvstedt 475dda08b5 flakes: use stable release branches for nixpkgs inputs
This is the best practice for Flakes or clients of nixpkgs in general.

The `release-<YY.MM>` branch is actually a dev branch:
Hydra continually tests the tip of this branch.
When the tests succeed, the `nixos-<YY.MM>` release branch is updated to
point to the succeeding commit.

`release-<YY.MM>` is to `nixos-<YY.MM>` what `master` is to `nixpkgs-unstable`.

See also: e88fb997e3/CONTRIBUTING.md (flow-of-merged-pull-requests)
2023-12-17 21:33:53 +01:00

46 lines
1.1 KiB
Nix

{
description = "An empty project that uses Zig.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
flake-utils.url = "github:numtide/flake-utils";
zig.url = "github:mitchellh/zig-overlay";
# Used for shell.nix
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
};
outputs = {
self,
nixpkgs,
flake-utils,
...
} @ inputs: let
overlays = [
# Other overlays
(final: prev: {
zigpkgs = inputs.zig.packages.${prev.system};
})
];
# Our supported systems are the same supported systems as the Zig binaries
systems = builtins.attrNames inputs.zig.packages;
in
flake-utils.lib.eachSystem systems (
system: let
pkgs = import nixpkgs {inherit overlays system;};
in rec {
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [
zigpkgs.master
];
};
# For compatibility with older versions of the `nix` binary
devShell = self.devShells.${system}.default;
}
);
}