I tested this version on my system without any issues, but on
the other hand it has better error handling i.e. for infinite recursion.
This version has been now also cooking in the nix-install-action for 2
weeks: https://github.com/cachix/install-nix-action/pull/206
Without the change the eval fails as:
$ nix build --no-link -f. nixVersions.git.tests
error: attribute 'nix_2_23' missing
at pkgs/tools/package-management/nix/common.nix:252:17:
251| tests = {
252| nixi686 = pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"};
| ^
253| };
Did you mean one of nix_2_13, nix_2_20, nix_2_21, nix_2_22 or nix_2_3?
The change explicitly passes attribute name around instead of inferring
it from package version.
Had to rework the nix-perl build a little bit since it's now based on
meson. Confirmed that everything from Nix 2.3 works fine with it
(confirmed that the `isValidPath` operation is behaving correctly from
Perl).
This doesn't fix cross though, neither for 2.22 nor later: both
configuration systems check for a `curl` & `perl` in the builder's
$PATH even though both are only in `buildInputs` in upstream's build.
OTOH a native Perl is probably needed for `xsubpp`.
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
Those are not maintained anymore by upstream Nix[1]. In fact, Nix
intends to only maintain
> * The latest release
> * The version used in the stable NixOS release, which is announced in the NixOS release notes.
Given that security issues and regressions happen, for instance latest
2.17 unconditionally rejects leading dots in store-paths, a regression
fixed in other Nix versions[2].
I didn't touch
* 2.3 since there's still a rather large user-base and it has a special
role as the last pre-flakes release.
* 2.19 - 2.22: I'm not really sure what the next stable nix for nixpkgs
will be and at least 2.19 seems to work relatively well for me.
Anyways, touching those seems way more controversial than touching
2.10-2.17, so I'll skip that for now.
[1] https://nixos.org/manual/nix/stable/release-notes/
[2] https://github.com/NixOS/nix/issues/10497