forked from mirrors/nixpkgs
doc/builders/fetchers: Explain invalidateFetcherByDrvHash
This commit is contained in:
parent
f74b160832
commit
b502de6476
|
@ -6,7 +6,7 @@ When using Nix, you will frequently need to download source code and other files
|
||||||
|
|
||||||
Because fixed output derivations are _identified_ by their hash, a common mistake is to update a fetcher's URL or a version parameter, without updating the hash. **This will cause the old contents to be used.** So remember to always invalidate the hash argument.
|
Because fixed output derivations are _identified_ by their hash, a common mistake is to update a fetcher's URL or a version parameter, without updating the hash. **This will cause the old contents to be used.** So remember to always invalidate the hash argument.
|
||||||
|
|
||||||
Similarly, a change to the implementation of a fetcher may cause a fixed output derivation to fail, but isn't caught by tests because the supposed output is already in the store or cache. So when testing a fetcher, always make sure to `nix-store --delete` the output and pay attention to the log, in case deletion was prevented by a garbage collection root.
|
For those who develop and maintain fetcheres, a similar problem arises with changes to the implementation of a fetcher. These may cause a fixed output derivation to fail, but won't normally be caught by tests because the supposed output is already in the store or cache. For the purpose of testing, you can use a trick that is embodied by the `invalidateFetcherByDrvHash` function. It uses the derivation `name` to create a unique output path per fetcher implementation, defeating the caching precisely where it would be harmful.
|
||||||
|
|
||||||
## `fetchurl` and `fetchzip` {#fetchurl}
|
## `fetchurl` and `fetchzip` {#fetchurl}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue