New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
treewide: Re-add reverted Nix 2 syntax features #37693
Conversation
FYI: IMO, Nix 2.0-only expressions should not be merged until 18.03 is released. |
@joepie91 workaround for 17.09:
|
I think we should wait on this until NixOS/nix#2016 is resolved |
6353413
to
ddff967
Compare
I was asked to re-consider this issue. I am fine with the minimal version being 1.11 for 18.09, but there have been multiple occasions questioning the value of still keeping 1.11 around as the minimal version. I think the only fully thought-of argument for keeping 1.11 around for 18.09 is nix#2016. This may not be important enough to warrant keeping 1.11 compatibility for 18.09. I have been told by @dezgeg that there already are some parts of nixpkgs that won't build with 1.11.
Ripping the band-aid right now at the edge of the branch-off would, though, make it so that 18.09 has almost no 2.x specific features in, but ensures going forward 19.03 can use everything freely. Merging this will also bring out the users affected by such change, making them known values (if any) instead of theoretical figures. Assuming this doesn't get merged by branch-off, I nominate this PR as being within the first merged to master right after making the release-18.09 branch. @vcunat, and @edolstra, could you both give your opinion and judgement? I won't personally merge this before the branch-off (unless told to by one of you), but agree and support the decision of any of you two to merge this. EDITOh, a new development, don't keep from wanting to merge because of this, but we'll need to coordinate with @grahamc to update the ofborg fleet before pressing merge; if only to keep ofborg from needlessly failing a couple PRs. You know how to cooperate with him if you want to do it, or otherwise I can, too, and then merge. (Graham assured me it's only a small change, and will be quick.) |
The largest inconvenience I can see is that this disables one-step upgrade from NixOS <= 17.09 to >= 18.09, as the abortion in Now, the build-time closure of nix itself probably won't use placeholders yet, so the abortion itself would be the only blocker (as only new nix gets built and then it's used for further evaluation), but I can't see how to easily enforce this, and support periods for <= 17.09 and >= 18.09 do not overlap anyway. Therefore I'd just add a comment to https://github.com/NixOS/nixpkgs/blob/master/default.nix#L9 that they should switch to 18.03 to get nix2 before updating further. EDIT: well, maybe we should generically suggest to upgrade only one release at a time, seeing that some users are likely to attempt even larger leaps #45685 |
On the other hand, is this change expected to help on the stable branch? (i.e. expected to conflict future with cherry-picks?) I understand it's handy on master, but for that it's the same if we do it just after branching 18.09. |
We already have this in practice - there was an issue recently about someone being unable to upgrade to versions due to incompatibilities in the Nix version. As for why it's useful on stable, the main reason I can see is that it makes cherry picking patches easier. |
Failure on x86_64-darwin (full log) Attempted: gmic Partial log (click to expand)
|
Success on x86_64-linux (full log) Attempted: gmic Partial log (click to expand)
|
Timed out, unknown build status on aarch64-linux (full log) Attempted: gmic Partial log (click to expand)
|
Motivation for this change
Placeholders are just too convenient. See, for example, recently merged #37613