about summary refs log tree commit diff
path: root/doc/contributing/coding-conventions.chapter.md
diff options
context:
space:
mode:
authorValentin Gagarin <valentin.gagarin@tweag.io>2022-12-05 16:24:52 +0100
committerValentin Gagarin <valentin.gagarin@tweag.io>2022-12-07 16:47:30 +0100
commit53b5a47c12e45bcc55a1115429e231e8c325fd1e (patch)
tree199d433875cbe16252cdf372dea137c09eda585a /doc/contributing/coding-conventions.chapter.md
parent5b9b93b9be4234aaf9cd53e3247a927225095514 (diff)
document Import From Derivation (IFD) policy
Diffstat (limited to 'doc/contributing/coding-conventions.chapter.md')
-rw-r--r--doc/contributing/coding-conventions.chapter.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md
index d6f6cfe2358d0..134c0ca93cae9 100644
--- a/doc/contributing/coding-conventions.chapter.md
+++ b/doc/contributing/coding-conventions.chapter.md
@@ -670,3 +670,18 @@ stdenv.mkDerivation {
   ...
 }
 ```
+
+### Import From Derivation {#ssec-import-from-derivation}
+
+Import From Derivation (IFD) is disallowed in Nixpkgs for performance reasons:
+[Hydra] evaluates the entire package set, and sequential builds during evalation would increase evaluation times to become impractical.
+
+[Hydra]: https://github.com/NixOS/hydra
+
+Import From Derivation can be worked around in some cases by committing generated intermediate files to version control and reading those instead.
+
+<!-- TODO: remove the following and link to Nix manual once https://github.com/NixOS/nix/pull/7332 is merged -->
+
+See also [NixOS Wiki: Import From Derivation].
+
+[NixOS Wiki: Import From Derivation]: https://nixos.wiki/wiki/Import_From_Derivation