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 be64fbb501external 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
*Quit0a711689368external link0.11Became dead code in 7951c3c54external link (Nix 0.11) and removed in d3c61d83bexternal link (Nix 1.8)
IsValidPath1a711689368external link0.11
HasSubstitutes30565b5f2b3external link0.11Obsolete 09a6321aebexternal link
Nix 1.2 Protocol 1.12
QueryPathHash40565b5f2b3external link0.11Obsolete e0204f8d46external link
Nix 2.0 Protocol 1.16
QueryReferences50565b5f2b3external link0.11Obsolete e0204f8d46external link
Nix 2.0 Protocol 1.16
QueryReferrers60565b5f2b3external link0.11
AddToStore70263279071external link0.11
AddTextToStore80263279071external link0.11Obsolete c602ebfb34external link
Nix 2.4 Protocol 1.25
BuildPaths90565b5f2b3external link0.11
EnsurePath100565b5f2b3external link0.11
AddTempRoot11e25fad691aexternal link0.11
AddIndirectRoot1274033a844fexternal link0.11
SyncWithGC13e25fad691aexternal link0.11Obsolete 9947f1646aexternal link
Nix 2.5.0 Protocol 1.32
FindRoots1429cf434a35external link0.11
*CollectGarbage15a9c4f66cfbexternal link0.11Removed a72709afd8external link
Nix 0.12 Protocol 1.02
ExportPath160f5da8a83cexternal link0.11Obsolete 538a64e8c3external link
Nix 2.0 Protocol 1.17
*ImportPath170f5da8a83cexternal link0.11Removed 273b288a7eexternal link
Nix 1.0 Protocol 1.09
QueryDeriver186d1a1191b0external link0.11Obsolete e0204f8d46external link
Nix 2.0 Protocol 1.16
SetOptions19f3441e6122external link0.11
CollectGarbage20a72709afd8external link1.020.12
QuerySubstitutablePathInfo2103427e76f1external link1.020.12Obsolete Nix 1.2 Protocol 1.12
QueryDerivationOutputs22e42401ee7bexternal link1.051.0Obsolete d38f860c3eexternal link
Nix 2.4 Protocol 1.22*
QueryAllValidPaths2324035b98b1external link1.051.0
*QueryFailedPaths24f92c9a0ac5external link1.051.0Removed 8cffec848external link
Nix 2.0 Protocol 1.16
*ClearFailedPaths25f92c9a0ac5external link1.051.0Removed 8cffec848external link
Nix 2.0 Protocol 1.16
QueryPathInfo261db6259076external link1.061.0
ImportPaths27273b288a7eexternal link1.091.0Obsolete 538a64e8c3external link
Nix 2.0 Protocol 1.17
QueryDerivationOutputNames28af2e53fd48external link
(194d21f9f6external link )
1.081.0Obsolete
045b07200cexternal link
Nix 2.4 Protocol 1.21
QueryPathFromHashPart29ccc52adfb2external link1.111.1
QuerySubstitutablePathInfos30eb3036da87external link1.12*1.2Obsolete Nix 2.0, Protocol 1.19*
QueryValidPaths3158ef4d9a95external link1.121.2
QuerySubstitutablePaths3209a6321aebexternal link1.121.2
QueryValidDerivers332754a07eadexternal link1.13*1.3
OptimiseStore348fb8c26b6dexternal link1.141.8
VerifyStore35b755752f76external link1.141.9
BuildDerivation3671a5161365external link1.141.10
AddSignatures37d0f5719c2aexternal link1.162.0
NarFromPath38b4b5e9ce2fexternal link1.172.0
AddToStoreNar39584f8a62deexternal link1.172.0
QueryMissing40ba20730b3fexternal link1.19*2.0
QueryDerivationOutputMap41d38f860c3eexternal link1.22*2.4
RegisterDrvOutput4258cdab64acexternal link1.272.4
QueryRealisation4358cdab64acexternal link1.272.4
AddMultipleToStore44fe1f34fa60external link1.32*2.4
AddBuildLog454dda1f92aaexternal link1.322.6.0
BuildPathsWithResults46a4604f1928external link1.34*2.8.0
AddPermRoot47226b0f3956external 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