Nix 2.4, and what’s next?

With the next release of NixOS on the horizon, I’d like this group to take a look at where we are and start to discuss if the correct fixes have been put in place, or to put some effort to fix the things mentioned in the original post. I’d like to avoid a last-minute objection for 22.05. Are there any concrete steps that need to be taken or working groups established or RFCs written?

7 Likes

Also, we forgot to update NixOS release notes, which still misleadingly feature Nix 2.4 for NixOS 21.11.

1 Like

Just to bump this thread (and reiterate @tomberek’s last query). Whats the state of Nix going to be in 22.05 ?

I don’t currently use flakes (haven’t had a need,) but am not opposed to a bit of effort to bring my configurations up to spec if need be. I’m just curious what the upgrade path is going to look like?

1 Like

I for my part am still on a version of nix 2.3 with custom hand picked (and ported) fixes. In my experience it is the only stable version of NIx we currently have. I occasionally try newer versions (across devices) and usually just run into issues non-stop.

I’ll not go through the list of things that we initially pointed out. Most of what I cared about hasn’t changed. I would put in the time but project governance is just terrible.

5 Likes

Is this still valid? Will 22.05 ship a newer nix?

2 Likes

yes, nix 22.05 will ship with the latest nix. Most of the people concerned with the things in this post had voiced their complaints, but have not seemed to champion any of the issues to get them addressed. See @tomberek 's post from almost 3 months ago above. I think this was mostly just voicing unhappiness with how things were trail-blazed forward with flakes.

3 Likes

With 22.05 using nix > 2.3, does this also effect the use of the current standard commands (nix-env/shell/build/etc.) or configuration (“configuration.nix”) ? Or do these remain unaffected? i.e. Is this next upgrade going to require configuration changes?

1 Like

nix-* commands stay the way they were, this only affects experimental nix command.

2 Likes

Also, for future reference, all the flake-related commands are still firmly marked as experimental, and may even be scrapped entirely: Experimental Commands - Nix Reference Manual

There was a timeline published on how to get those things to maybe become stable eventually, but it’s not a 6 month development deal :slight_smile: Maybe in a year or two.

Even then, a deprecation of the old commands isn’t even in the timeline, and would be very clearly announced beforehand. I wouldn’t expect anything like that anytime soon. It would be called the 3.0 release too, the nix command is marked as nix-3 here and there, after all.

There might still be some fallout from the upgrade, just as last time. The nix version used by default in nixpkgs is now some 5000 commits out of sync with mainline. Eventually the upgrade will need to happen, once that band-aid is pulled off things will probably get smoother (not least because recent version changes have been much smaller in scope).

I think the nix team deserve a lot of credit for their continued maintenance of the 2.3 branch, they’ve been maintaining it alongside other development for 3 years now. If newer nix versions have issues, report them so that they’re known, and if that doesn’t move quickly enough for you, try to help out - it’s not exactly a Google sized team working on this.

6 Likes

Good stuff, as long as the age old adage “it worked before, it should work now” continues to hold true [with regards to standard nix-* utilities] there shouldn’t be a problem.

@TLATER Thanks for clearing that up. As long as the “new” nix command is marked experimental, standard unstable guarantee’s (what guarantee’s ? :wink: ) should be expected.

1 Like

Its possible you may experience one of the regressions in the original post here, probably related to fetchgit or fetchtarball, but it looks like there’s a work around or the issue could be addressed…