mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-15 14:26:33 +01:00
07f363fae3
Currently, not providing `name` to `cleanSourceWith` will use the name of the imported directory. However, a common case is for this to be the top level of some repository. In that case, the name will be the name of the checkout on the current machine, which is not necessarily reproducible across different settings, and can lead to e.g. cache misses in CI. This is documented in the comment on `cleanSourceWith`, but this does not stop it being a subtle trap for users. There are different tradeoffs in each case: 1. If `cleanSourceWith` defaults to `"source"`, then we may end up with a user not knowing what directory a source store path corresponds to. However, it being called "unnamed" may give them a clue that there is a way for them to name it, and lead them to the definition of the function, which has a clear `name` parameter. 2. If `cleanSoureWith` defaults to the directory name, then a user may face occasional loss of caching, which is hard to notice, and hard to track down. Tracking it down likely requires use of more advanced tools like `nix-diff`, and reading the source of a lot of nix code. I think the downside of the status quo is worse. This is really another iteration of https://github.com/NixOS/nix/issues/1305: that led to adding the `name` argument in the first place, this just makes us use a better default `name`. |
||
---|---|---|
.. | ||
systems | ||
tests | ||
asserts.nix | ||
attrsets.nix | ||
cli.nix | ||
customisation.nix | ||
debug.nix | ||
default.nix | ||
deprecated.nix | ||
fetchers.nix | ||
filesystem.nix | ||
fixed-points.nix | ||
generators.nix | ||
kernel.nix | ||
licenses.nix | ||
lists.nix | ||
meta.nix | ||
minver.nix | ||
modules.nix | ||
options.nix | ||
sources.nix | ||
strings-with-deps.nix | ||
strings.nix | ||
trivial.nix | ||
types.nix | ||
versions.nix | ||
zip-int-bits.nix |