Changelog

This page tracks the different protocol versions and corresponding Nix versions, as well as when certain Operations have been introduced or deprecated.

Different “function signatures” are tracked on the Operations page as well.

Nix version protocol

Nix versionProtocol
0.111.02
0.121.04
0.131.05
0.141.05
0.151.05
0.161.06
1.01.10
1.11.11
1.21.12
1.3 - 1.5.31.13
1.6 - 1.101.14
1.11 - 1.11.161.15
2.0 - 2.0.41.20
2.1 - 2.3.181.21
2.4 - 2.6.11.32
2.7.01.33
2.8.0 - 2.14.11.34
2.15.0 - 2.19.41.35
2.20.0 - 2.22.01.37

In commit be64fbb501 external link 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

OpIdCommitProtocolNix VersionNotes
*Quit0a711689368 external link0.11Became dead code in 7951c3c54 external link (Nix 0.11) and removed in d3c61d83b external link (Nix 1.8)
IsValidPath1a711689368 external link0.11
HasSubstitutes30565b5f2b3 external link0.11Obsolete 09a6321aeb external link
Nix 1.2 Protocol 1.12
QueryPathHash40565b5f2b3 external link0.11Obsolete e0204f8d46 external link
Nix 2.0 Protocol 1.16
QueryReferences50565b5f2b3 external link0.11Obsolete e0204f8d46 external link
Nix 2.0 Protocol 1.16
QueryReferrers60565b5f2b3 external link0.11
AddToStore70263279071 external link0.11
AddTextToStore80263279071 external link0.11Obsolete c602ebfb34 external link
Nix 2.4 Protocol 1.25
BuildPaths90565b5f2b3 external link0.11
EnsurePath100565b5f2b3 external link0.11
AddTempRoot11e25fad691a external link0.11
AddIndirectRoot1274033a844f external link0.11
SyncWithGC13e25fad691a external link0.11Obsolete 9947f1646a external link
Nix 2.5.0 Protocol 1.32
FindRoots1429cf434a35 external link0.11
*CollectGarbage15a9c4f66cfb external link0.11Removed a72709afd8 external link
Nix 0.12 Protocol 1.02
ExportPath160f5da8a83c external link0.11Obsolete 538a64e8c3 external link
Nix 2.0 Protocol 1.17
*ImportPath170f5da8a83c external link0.11Removed 273b288a7e external link
Nix 1.0 Protocol 1.09
QueryDeriver186d1a1191b0 external link0.11Obsolete e0204f8d46 external link
Nix 2.0 Protocol 1.16
SetOptions19f3441e6122 external link0.11
CollectGarbage20a72709afd8 external link1.020.12
QuerySubstitutablePathInfo2103427e76f1 external link1.020.12Obsolete Nix 1.2 Protocol 1.12
QueryDerivationOutputs22e42401ee7b external link1.051.0Obsolete d38f860c3e external link
Nix 2.4 Protocol 1.22*
QueryAllValidPaths2324035b98b1 external link1.051.0
*QueryFailedPaths24f92c9a0ac5 external link1.051.0Removed 8cffec848 external link
Nix 2.0 Protocol 1.16
*ClearFailedPaths25f92c9a0ac5 external link1.051.0Removed 8cffec848 external link
Nix 2.0 Protocol 1.16
QueryPathInfo261db6259076 external link1.061.0
ImportPaths27273b288a7e external link1.091.0Obsolete 538a64e8c3 external link
Nix 2.0 Protocol 1.17
QueryDerivationOutputNames28af2e53fd48 external link
(194d21f9f6 external link )
1.081.0Obsolete
045b07200c external link
Nix 2.4 Protocol 1.21
QueryPathFromHashPart29ccc52adfb2 external link1.111.1
QuerySubstitutablePathInfos30eb3036da87 external link1.12*1.2Obsolete Nix 2.0, Protocol 1.19*
QueryValidPaths3158ef4d9a95 external link1.121.2
QuerySubstitutablePaths3209a6321aeb external link1.121.2
QueryValidDerivers332754a07ead external link1.13*1.3
OptimiseStore348fb8c26b6d external link1.141.8
VerifyStore35b755752f76 external link1.141.9
BuildDerivation3671a5161365 external link1.141.10
AddSignatures37d0f5719c2a external link1.162.0
NarFromPath38b4b5e9ce2f external link1.172.0
AddToStoreNar39584f8a62de external link1.172.0
QueryMissing40ba20730b3f external link1.19*2.0
QueryDerivationOutputMap41d38f860c3e external link1.22*2.4
RegisterDrvOutput4258cdab64ac external link1.272.4
QueryRealisation4358cdab64ac external link1.272.4
AddMultipleToStore44fe1f34fa60 external link1.32*2.4
AddBuildLog454dda1f92aa external link1.322.6.0
BuildPathsWithResults46a4604f1928 external link1.34*2.8.0
AddPermRoot47226b0f3956 external link1.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