Skip to content
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

nixVersion.nix_2_3: Remove #204371

Closed
wants to merge 3 commits into from
Closed

nixVersion.nix_2_3: Remove #204371

wants to merge 3 commits into from

Conversation

mweinelt
Copy link
Member

@mweinelt mweinelt commented Dec 4, 2022

Nix 2.3 is the last version not using libarchive for decompression and
therefore prevents us from migrating the compression algorithm used for
the binary cache.

This resulted from interest in using zstd compression on hydra.

Description of changes
Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@github-actions github-actions bot added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: python 8.has: changelog 8.has: documentation This PR adds or changes documentation labels Dec 4, 2022
@mweinelt
Copy link
Member Author

mweinelt commented Dec 4, 2022

  • @chkno Can you port nixos-option to a more recent nix version, please?
  • @Mic92 Removes pythonix, because it is archived and pinned to nix_2_3.
  • @t184256 Removes python3.pkgs.nixpkgs, because it depends on pythonix

@ofborg ofborg bot added 8.has: clean-up 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 labels Dec 4, 2022
@Artturin
Copy link
Member

Artturin commented Dec 4, 2022

Sounds good to me, let's also bump minver (i will handle it in #203361 which we can merge when most people have migrated to 22.11)

@mweinelt
Copy link
Member Author

mweinelt commented Dec 4, 2022

The minver bump is already in there, but your rationale sounds better, so let's take yours. What about the remaining packages in nixVersions (2.6 to 2.10)?

@Artturin
Copy link
Member

Artturin commented Dec 4, 2022

What about the remaining packages in nixVersions (2.6 to 2.10)?

let's think about that in #203361

this pr can be merged with the minver bump and the release notes and i'll remove them in my pr

@Artturin
Copy link
Member

Artturin commented Dec 4, 2022

@andir why the 😕 ?

Copy link
Member

@SuperSandro2000 SuperSandro2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can someone please be so kind and update nixos-option? We should also move it into its own repository and out of nixpkgs.

@vcunat
Copy link
Member

vcunat commented Dec 4, 2022

What about the remaining packages in nixVersions (2.6 to 2.10)?

2.6 is there quite newly: PR #200357

@vcunat
Copy link
Member

vcunat commented Dec 4, 2022

I'd personally not bump minver at this point. Maybe print a warning, but not hard error.

I mean, everything will still work fine with 2.3, except perhaps downloading from cache.nixos.org – and only for binaries created in future (and it's not like switch's been decided yet). So at this point, bumping minver feels like introducing breakage without utilizing any benefit in exchange (in nixpkgs).

@Mic92
Copy link
Member

Mic92 commented Dec 4, 2022

Ok with dropping pythonix

@mweinelt
Copy link
Member Author

mweinelt commented Dec 4, 2022

Dropped the minver bump.

@andir
Copy link
Member

andir commented Dec 4, 2022

@andir why the confused ?

Because I am still using 2.3 daily. I've had it as a default until last week. Newer Nix versions simply break too much for me to be happy with them. Reporting issues to the Nix project usually doesn't result in any constructive conversation on how to fix issues. PRs are left hanging etc. If you asked me, all versions after 2.3 are at best beta quality.

@Artturin
Copy link
Member

Artturin commented Dec 4, 2022

What about the remaining packages in nixVersions (2.6 to 2.10)?

2.6 is there quite newly: PR #200357

removals of 2.6-2.9 in #204481
they should be uncontroversial

@SuperSandro2000
Copy link
Member

The default nix version is newer than 2.3 for quite a while and no one I know in person has problems they complain about it that weren't also in 2.3 like to much RAM usage, downloading could be faster or taking a bit to evaluate.

I'd rather fancy zstd compressed packages to slightly speed up downloads and improve extraction performance than keeping nix 2.3.

@Profpatsch
Copy link
Member

Profpatsch commented Dec 12, 2022

I know at least half a dozen people who have nix pinned to 2.3.

Nix 2.3 was the last “stable” release (the release window between 2.3 and 2.4 was over 2 years), before promises like “the new CLI is gonna be stabilized any week now” were traded in for “flakes is gonna be stabilized any bi-monthly release now”.

What we effectively got since 2.3 was constant beta-quality changes to experimental features, which is the reason so many people stayed on 2.3 from what I know.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/switch-cache-nixos-org-to-zstd-to-fix-slow-nixos-updates-nix-downloads/23961/5

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/switch-cache-nixos-org-to-zstd-to-fix-slow-nixos-updates-nix-downloads/23961/10

@RaitoBezarius RaitoBezarius mentioned this pull request Dec 22, 2022
13 tasks
@RaitoBezarius
Copy link
Member

RaitoBezarius commented Dec 22, 2022

I switched to later versions of Nix, but to be honest, I still run into Nix 2.3 regressions in the latest versions. I completely understand why some people want to keep running it, so I am not too keen on seeing this PR being merged until a clear plan of addressing Nix 2.3 regressions is there and executed (easier to say than to do, of course).

@alyssais alyssais added the 2.status: merge conflict This PR has merge conflicts with the target branch label Feb 14, 2023
This package depends on pythonix, which has been archived upstream.

The pythonix package depends on nix<2.4 and since nix 2.3 is going to be
removed it cannot be supported anymore.
Pythonix is not compatble with nix>2.3 and since we plan to remove nix
2.3 it cannot be supported any longer.
Nix 2.3 is the last version not using libarchive for decompression and
therefore prevents us from migrating the compression algorithm used for
the binary cache.
@ofborg ofborg bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Oct 17, 2023
Copy link
Member

@Mic92 Mic92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fine with dropping pythonix

@edef1c
Copy link
Member

edef1c commented Oct 23, 2023

zstd decompression support for Nix 2.3 isn't a lot of work; I'm not sure I understand why that option wasn't taken more seriously. I've implemented it in NixOS/nix#9221, aiming for simplicity over performance.
If there is interest, I'm happy to optimise it for speed.

@SuperSandro2000
Copy link
Member

SuperSandro2000 commented Oct 23, 2023

Because it is already implemented via libarchive and we don't need to redevelop it for a 15 (!) minor version old release.

Can we work together to get this PR finished instead of walking in circles?

I am personally like many others using a version which is a lot newer and it's useable. Maybe things are broken but I don't have the comparison, I don't know but I want to get this somewhere because German Internet is slow and downloading less for every nixos-unstable bump would be a pretty great benefit.

@RaitoBezarius
Copy link
Member

RaitoBezarius commented Oct 23, 2023 via email

@RaitoBezarius
Copy link
Member

Because it is already implemented via libarchive and we don't need to redevelop it for a 15 (!) minor version old release.

Can we work together to get this PR finished instead of walking in circles?

I am personally like many others using a version which is a lot newer and it's useable. Maybe things are broken but I don't have the comparison, I don't know but I want to get this somewhere because German Internet is slow and downloading less for every nixos-unstable bump would be a pretty great benefit.

You'd download more with zstd, this was explained in the Discourse post. So it would worsen the situation.

It'd only benefit people like me with fast French Internet.

Under the presence of zstd in 2.3, removing it is NACK from me.
And anyway even pushing for zstd is its own question.

@roberth
Copy link
Member

roberth commented Oct 23, 2023

Reporting issues to the Nix project usually doesn't result in any constructive conversation on how to fix issues. PRs are left hanging etc.

I'm sorry to hear that. We've been putting in a lot of effort over the past year (the Nix team). In particular we've succeeded at keeping PR backlog stable near 300 until approximately NixCon. In other words, new PRs had a good chance, and those that didn't were compensated by old PRs.
We have also triaged many issues, made relevant decisions, tried help move them forward, but those were mostly newer issues.

@edef1c
Copy link
Member

edef1c commented Oct 24, 2023

Because it is already implemented via libarchive and we don't need to redevelop it for a 15 (!) minor version old release.

Newer Nix versions are full of regressions, so I'm still running 2.3 and expect to continue doing so until Tvix is production-ready. No work on your part is necessary to port it to 2.3, the code is already written, so I'm not sure what else would satisfy you.

I don't mean to blame the Nix core team here either: 2.3 was an undermaintained mess of a codebase at best in a stable equilibrium of bugs, with little test infrastructure or code hygiene practices, that then got a heap of features and changes piled onto it without real-world exposure. What was shipped as 2.4 simply contained too many previously-unreleased changes at once. The Nix core team is doing their best, and I applaud their efforts. That said, I still consider 2.4 and up essentially beta versions.

I don't know but I want to get this somewhere because German Internet is slow and downloading less for every nixos-unstable bump would be a pretty great benefit.

This sounds like… opposition to zstd, rather than support for it? Decompression speed is fundamentally at odds with reduced bandwidth use. I'm not sure I understand anyone's motivations here at this point, and could use clarification.

@edef1c
Copy link
Member

edef1c commented Oct 24, 2023

More generally, is there a tracking issue for moving Hydra to zstd? I'm actively working fulltime on cache storage size reduction strategies, and serving the cache as zstd would definitely help enable the techniques we're working on gathering data for. Further down the line, we would be able to reduce bandwidth use by serving through the same protocol we're working on for storage.

@vcunat
Copy link
Member

vcunat commented Oct 24, 2023

I don't think there is. The place would most likely be https://github.com/NixOS/nixos-org-configurations/issues but I believe that right now the more pressing matters are like reducing storage size, which goes against this. Though perhaps we could afford worse compression ratio once we start expiring some older paths: NixOS/infra#282

@SuperSandro2000
Copy link
Member

Newer Nix versions are full of regressions

You are just saying that without any context or referencing any issue(s) or problems. We have nothing concrete here, just some vague statement that newer versions are supposedly unusable despite many many people using them daily and it seems to somehow work for them.
Could someone at least link one issue or problem that is so pressing that it must be fixed before dropping 2.3? Otherwise I don't think we can get here anywhere.

@RaitoBezarius
Copy link
Member

Newer Nix versions are full of regressions

You are just saying that without any context or referencing any issue(s) or problems. We have nothing concrete here, just some vague statement that newer versions are supposedly unusable despite many many people using them daily and it seems to somehow work for them. Could someone at least link one issue or problem that is so pressing that it must be fixed before dropping 2.3? Otherwise I don't think we can get here anywhere.

Honestly, it's quite tiring because you can figure this out on your own by just going into https://github.com/NixOS/nix/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc and type "Nix 2.3", obvious results will appear.

We spent the last years explaining and answering to this over and over, this is disrespectful of the time of others.

What has been said for the last years was: "If you don't want Nix 2.3 to be removed, get zstd support", this is now done.

If you have objective and valid reasons to remove Nix 2.3, I am interested, for the time being, I do not see them, therefore, there's no reason to drop support for Nix 2.3 at the moment.

The project is frustrating enough for a lot of folks which were disrespected and burned out in the past, let's not make them ragequit just for the sake of increasing a version number with no benefits.
Please be kind and take into account the history of other people involved in this project.

If you want Nix 2.3 to move, please, let's collect all reasonable Nix 2.3 regressions, show they are fixed in a Nix release that is supported by nixpkgs and we can potentially move the needle there. In the meantime, thanks to @edef1c efforts, Nix 2.3 community did the work to unblock people wanting zstd support. This cannot work only in one way.

@mweinelt
Copy link
Member Author

With nix 2.3 having gained zstd support this PR has been made obsolete for my cause.

Please make sure these patches make it into nixpkgs.

@mweinelt mweinelt closed this Oct 28, 2023
@mweinelt mweinelt deleted the drop-nix-2-3 branch October 28, 2023 11:41
@RaitoBezarius
Copy link
Member

Tracked in NixOS/nix#9244.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: python 8.has: changelog 8.has: clean-up 8.has: documentation This PR adds or changes documentation 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10
Projects
None yet
Development

Successfully merging this pull request may close these issues.