nixVersions.unstable: build from master, re-init at 2.22.0.pre20240321_6fd2f42c

The idea behind that is to enable users and developers of
downstream tools such as home-manager to test Nix master for several
reasons:

* Nix is currently trying to have a `master` branch that's always
  releasable[1]. We're still on Nix 2.18 in nixpkgs due to too many
  notable regressions. Enabling people to test latest master may help on
  that end.

* This uses the most bleeding-edge Nix, but our packaging, so we can
  identify issues with our packaging early.

* From what I've seen, most people are using the packages from nixpkgs
  anyways instead of the upstream flake, this is far more convenient
  anyways.

My plan is to update this once a week. Right now we rely on the
`installCheckPhase` here, but as soon as we have proper regression
testing[2], we may want to add `nixUnstable` there as well (however with
failures being allowed probably).

[1] https://discourse.nixos.org/t/nix-release-schedule-and-roadmap/14204
[2] https://github.com/NixOS/nixpkgs/pull/304332
This commit is contained in:
Maximilian Bosch 2024-04-22 10:09:39 +02:00
parent f7ae5ead09
commit 2b4e18f3d4
No known key found for this signature in database
4 changed files with 22 additions and 4 deletions

View file

@ -2,7 +2,7 @@
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
nix ? pkgs-nixVersions.stable,
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.unstable ],
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.latest ],
pkgs-nixVersions ? import ./nix-for-tests.nix { inherit pkgs; },
}:

View file

@ -30,6 +30,10 @@ In addition to numerous new and upgraded packages, this release has the followin
To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
- `nixVersions.unstable` was removed. Instead the following attributes are provided:
- `nixVersions.git` which tracks the latest Nix master and is roughly updated once a week. This is intended to enable people to easily test unreleased changes of Nix to catch regressions earlier.
- `nixVersions.latest` which points to the latest Nix version packaged in nixpkgs.
- Julia environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
- The PipeWire and WirePlumber modules have removed support for using

View file

@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-lyKPmzuZB9rCBI9JxhxlyDtNHLia8FXGnSgV+D/dwgo=";
nativeBuildInputs = [
(lib.getBin nixVersions.unstable)
(lib.getBin nixVersions.latest)
];
env.CFG_RELEASE = version;

View file

@ -179,6 +179,19 @@ in lib.makeExtensible (self: ({
hash = "sha256-Ugcc+lSq8nJP+mddMlGFnoG4Ix1lRFHWOal3299bqR8=";
};
git = common rec {
version = "2.22.0";
suffix = "pre20240421_${lib.substring 0 8 src.rev}";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "6fd2f42c2defd210e17ec95653110fc58858dba9";
hash = "sha256-DjkxYMcG52APiADdEtXL1FNVSxNXRBw78LYctly93j0=";
};
};
latest = self.nix_2_21;
# The minimum Nix version supported by Nixpkgs
# Note that some functionality *might* have been backported into this Nix version,
# making this package an inaccurate representation of what features are available
@ -197,8 +210,6 @@ in lib.makeExtensible (self: ({
nix;
stable = addFallbackPathsCheck self.nix_2_18;
unstable = self.nix_2_22;
} // lib.optionalAttrs config.allowAliases (
lib.listToAttrs (map (
minor:
@ -207,4 +218,7 @@ in lib.makeExtensible (self: ({
in
lib.nameValuePair attr (throw "${attr} has been removed")
) (lib.range 4 17))
// {
unstable = throw "nixVersions.unstable has been removed. For bleeding edge (Nix master, roughly weekly updated) use nixVersions.git, otherwise use nixVersions.latest.";
}
)))