Delete compatibility for daemons older than 2.3 #325

Closed
opened 2024-05-18 04:12:58 +00:00 by jade · 5 comments
Owner

This is beyond any reasonable compatibility window (5 years), and if you want to build against a very old nix daemon, simply get an older nix client.

Nix 2.3 is version 21. Any versions strictly less than 21 can be dropped with reckless abandon, and we can fail at the start of the connection.

https://github.com/NixOS/nix/blob/2.3/src/libstore/worker-protocol.hh#L9

This is beyond any reasonable compatibility window (5 years), and if you want to build against a very old nix daemon, simply get an older nix client. Nix 2.3 is version *21*. Any versions strictly less than 21 can be dropped with reckless abandon, and we can fail at the start of the connection. https://github.com/NixOS/nix/blob/2.3/src/libstore/worker-protocol.hh#L9
jade added the
stability
E/easy
E/help wanted
labels 2024-05-18 04:12:58 +00:00
Owner

we'd actually like to drop 2.3 too. and there's more to it than building against an old daemon, we also won't be able to build against a new daemon with an old client any more (both of which should be non-issues with how old nix 2.3 already is, and iwrc nixpkgs doesn't even fully work with 2.3 any more? at least we remember @puck saying something to that effect)

we'd actually like to drop 2.3 too. and there's more to it than building against an old daemon, we also won't be able to build against a *new* daemon with an old client any more (both of which should be non-issues with how old nix 2.3 already is, and iwrc nixpkgs doesn't even fully work with 2.3 any more? at least we remember @puck saying something to that effect)
Owner

cf https://gerrit.lix.systems/c/lix/+/1162; interop between <=2.0 and >=2.17 is just broken

cf https://gerrit.lix.systems/c/lix/+/1162; interop between <=2.0 and >=2.17 is just broken
qyriad added the
Area/store
label 2024-05-18 18:53:42 +00:00
jade self-assigned this 2024-05-24 02:32:28 +00:00
Member

This issue was mentioned on Gerrit on the following CLs:

  • commit message in cl/1207 ("libstore: refuse to serialise ancient protocols")
<!-- GERRIT_LINKBOT: {"cls": [{"backlink": "https://gerrit.lix.systems/c/lix/+/1207", "number": 1207, "kind": "commit message"}], "cl_meta": {"1207": {"change_title": "libstore: refuse to serialise ancient protocols"}}} --> This issue was mentioned on Gerrit on the following CLs: * commit message in [cl/1207](https://gerrit.lix.systems/c/lix/+/1207) ("libstore: refuse to serialise ancient protocols")
Author
Owner

Another thing we can delete is HasSubstitutes, since it is not used by anything except compatibility code for ancient versions of Nix that didn't have a list-based querySubstitutablePaths. Found when looking at #394

Another thing we can delete is `HasSubstitutes`, since it is not used by anything except compatibility code for ancient versions of Nix that didn't have a list-based querySubstitutablePaths. Found when looking at https://git.lix.systems/lix-project/lix/issues/394
Author
Owner

Follow-up CL deleting even more such code: https://gerrit.lix.systems/c/lix/+/1479

Follow-up CL deleting even more such code: https://gerrit.lix.systems/c/lix/+/1479
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lix-project/lix#325
No description provided.