Nix version protocol
Nix version | Protocol |
---|---|
0.11 | 1.02 |
0.12 | 1.04 |
0.13 | 1.05 |
0.14 | 1.05 |
0.15 | 1.05 |
0.16 | 1.06 |
1.0 | 1.10 |
1.1 | 1.11 |
1.2 | 1.12 |
1.3 - 1.5.3 | 1.13 |
1.6 - 1.10 | 1.14 |
1.11 - 1.11.16 | 1.15 |
2.0 - 2.0.4 | 1.20 |
2.1 - 2.3.18 | 1.21 |
2.4 - 2.6.1 | 1.32 |
2.7.0 | 1.33 |
2.8.0 - 2.14.1 | 1.34 |
2.15.0 - 2.19.4 | 1.35 |
2.20.0 - 2.22.0 | 1.37 |
In commit be64fbb501 support was droped for protocol versions older than 1.10. This happened when the protocol was between 1.17 and 1.18 and was released with Nix 2.0. So this means that any version of Nix 2.x can't talk to Nix 0.x.
Operation History
Op | Id | Commit | Protocol | Nix Version | Notes |
---|---|---|---|---|---|
*Quit | 0 | a711689368 | 0.11 | Became dead code in 7951c3c54 (Nix 0.11) and removed in d3c61d83b (Nix 1.8) | |
IsValidPath | 1 | a711689368 | 0.11 | ||
HasSubstitutes | 3 | 0565b5f2b3 | 0.11 | Obsolete 09a6321aeb Nix 1.2 Protocol 1.12 |
|
QueryPathHash | 4 | 0565b5f2b3 | 0.11 | Obsolete e0204f8d46 Nix 2.0 Protocol 1.16 |
|
QueryReferences | 5 | 0565b5f2b3 | 0.11 | Obsolete e0204f8d46 Nix 2.0 Protocol 1.16 |
|
QueryReferrers | 6 | 0565b5f2b3 | 0.11 | ||
AddToStore | 7 | 0263279071 | 0.11 | ||
AddTextToStore | 8 | 0263279071 | 0.11 | Obsolete c602ebfb34 Nix 2.4 Protocol 1.25 |
|
BuildPaths | 9 | 0565b5f2b3 | 0.11 | ||
EnsurePath | 10 | 0565b5f2b3 | 0.11 | ||
AddTempRoot | 11 | e25fad691a | 0.11 | ||
AddIndirectRoot | 12 | 74033a844f | 0.11 | ||
SyncWithGC | 13 | e25fad691a | 0.11 | Obsolete 9947f1646a Nix 2.5.0 Protocol 1.32 |
|
FindRoots | 14 | 29cf434a35 | 0.11 | ||
*CollectGarbage | 15 | a9c4f66cfb | 0.11 | Removed a72709afd8 Nix 0.12 Protocol 1.02 |
|
ExportPath | 16 | 0f5da8a83c | 0.11 | Obsolete 538a64e8c3 Nix 2.0 Protocol 1.17 |
|
*ImportPath | 17 | 0f5da8a83c | 0.11 | Removed 273b288a7e Nix 1.0 Protocol 1.09 |
|
QueryDeriver | 18 | 6d1a1191b0 | 0.11 | Obsolete e0204f8d46 Nix 2.0 Protocol 1.16 |
|
SetOptions | 19 | f3441e6122 | 0.11 | ||
CollectGarbage | 20 | a72709afd8 | 1.02 | 0.12 | |
QuerySubstitutablePathInfo | 21 | 03427e76f1 | 1.02 | 0.12 | |
QueryDerivationOutputs | 22 | e42401ee7b | 1.05 | 1.0 | Obsolete d38f860c3e Nix 2.4 Protocol 1.22* |
QueryAllValidPaths | 23 | 24035b98b1 | 1.05 | 1.0 | |
*QueryFailedPaths | 24 | f92c9a0ac5 | 1.05 | 1.0 | Removed 8cffec848 Nix 2.0 Protocol 1.16 |
*ClearFailedPaths | 25 | f92c9a0ac5 | 1.05 | 1.0 | Removed 8cffec848 Nix 2.0 Protocol 1.16 |
QueryPathInfo | 26 | 1db6259076 | 1.06 | 1.0 | |
ImportPaths | 27 | 273b288a7e | 1.09 | 1.0 | Obsolete 538a64e8c3 Nix 2.0 Protocol 1.17 |
QueryDerivationOutputNames | 28 | af2e53fd48 (194d21f9f6) |
1.08 | 1.0 | Obsolete 045b07200c Nix 2.4 Protocol 1.21 |
QueryPathFromHashPart | 29 | ccc52adfb2 | 1.11 | 1.1 | |
QuerySubstitutablePathInfos | 30 | eb3036da87 | 1.12* | 1.2 | |
QueryValidPaths | 31 | 58ef4d9a95 | 1.12 | 1.2 | |
QuerySubstitutablePaths | 32 | 09a6321aeb | 1.12 | 1.2 | |
QueryValidDerivers | 33 | 2754a07ead | 1.13* | 1.3 | |
OptimiseStore | 34 | 8fb8c26b6d | 1.14 | 1.8 | |
VerifyStore | 35 | b755752f76 | 1.14 | 1.9 | |
BuildDerivation | 36 | 71a5161365 | 1.14 | 1.10 | |
AddSignatures | 37 | d0f5719c2a | 1.16 | 2.0 | |
NarFromPath | 38 | b4b5e9ce2f | 1.17 | 2.0 | |
AddToStoreNar | 39 | 584f8a62de | 1.17 | 2.0 | |
QueryMissing | 40 | ba20730b3f | 1.19* | 2.0 | |
QueryDerivationOutputMap | 41 | d38f860c3e | 1.22* | 2.4 | |
RegisterDrvOutput | 42 | 58cdab64ac | 1.27 | 2.4 | |
QueryRealisation | 43 | 58cdab64ac | 1.27 | 2.4 | |
AddMultipleToStore | 44 | fe1f34fa60 | 1.32* | 2.4 | |
AddBuildLog | 45 | 4dda1f92aa | 1.32 | 2.6.0 | |
BuildPathsWithResults | 46 | a4604f1928 | 1.34* | 2.8.0 | |
AddPermRoot | 47 | 226b0f3956 | 1.36* | 2.20.0 |
Notes: Ops that start with * have been removed. Protocol version that ends with * was bumped while adding that operation. Otherwise protocol version referes to the protocol version at the time the operation was added (so only at the next protocol version can you assume the operation is present/removed/obsolete since it was added/removed/obsoleted between protocol versions).
Protocol version change log
- 1.01 f3441e6122 Initial Version
- 1.02 c370755583 Use build hook
- 1.03 db4f4a8425 Backward compatibility check
- 1.04 96598e7b06 SetOptions buildVerbosity
- 1.05 60ec75048a SetOptions useAtime & maxAtime
- 1.06 6846ed8b44 SetOptions buildCores
- 1.07 bdf089f463 QuerySubstitutablePathInfo narSize
- 1.08 b1eb252172 STDERR_ERROR exit status
- 1.09 e0bd307802 ImportPath not supported on versions older than 1.09
- 1.10 db5b86ef13 SetOptions build-use-substitutess
- 1.11 4bc4da331a open connection reserveSpace
- 1.12 eb3036da87 Implement QuerySubstitutablePathInfos
- 1.13 2754a07ead Implement QueryValidDerivers
- 1.14 a583a2bc59 open connection cpu affinity
- 1.15 d1e3bf01bc BuildPaths buildMode
- 1.16 9cee600c88 QueryPathInfo ultimate & sigs
- 1.17 ddea253ff8 QueryPathInfo returns valid bool
- 1.18 4b8f1b0ec0 Select between AddToStoreNar and ImportPaths
- 1.19 ba20730b3f Implement QueryMissing
- 1.20 cfc8132391 Don't send activity and result logs to old clients
- 1.21 6185d25e52 AddToStoreNar uses TunnelLogger for data
- 1.22 d38f860c3e Implement QueryDerivationOutputMap and obsolete QueryDerivationOutputs
- 1.23 4c0077a07d AddToStoreNar uses FramedSink/-Source for data
- 1.24 5ccd94501d Allow trustless building of CA derivations
- 1.25 e34fe47d0c New implementation of AddToStore
- 1.26 c43e882f54 STDERR_ERROR serialize exception
- 1.27 3a63fc6cd5 QueryValidPaths substitute flag
- 1.28 27b5747ca7 BuildDerivation returns builtOutputs
- 1.29 9d309de0de BuildDerivation returns timesBuilt, isNonDeterministic, startTime & stopTime
- 1.30 e5951a6b2f Bump version number for DerivedPath changes
- 1.31 a8416866cf RegisterDrvOutput & QueryRealisation send realisations as JSON
- 1.32 fe1f34fa60 Implement AddMultipleToStore
- 1.33 35dbdbedd4 open connection sends nix version
- 1.34 a4604f1928 Implement BuildPathsWithResults
- 1.35 9207f94582 open connection sends trusted option
- 1.36 226b0f3956 Implement AddPermRoot
- 1.37 1e3d811840 Serialize BuildResult send cpuUser & cpuSystem