3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/doc/languages-frameworks
Benjamin Hipple 2115a2037c fetchcargo: use flat tar.gz file for vendored src instead of recursive hash dir
This has several advantages:

1. It takes up less space on disk in-between builds in the nix store.
2. It uses less space in the binary cache for vendor derivation packages.
3. It uses less network traffic downloading from the binary cache.
4. It plays nicely with hashed mirrors like tarballs.nixos.org, which only
   substitute --flat hashes on single files (not recursive directory hashes).
5. It's consistent with how simple `fetchurl` src derivations work.
6. It provides a stronger abstraction between input src-package and output
   package, e.g., it's harder to accidentally depend on the src derivation at
   runtime by referencing something like `${src}/etc/index.html`. Likewise, in
   the store it's harder to get confused with something that is just there as a
   build-time dependency vs. a runtime dependency, since the build-time
   src dependencies are tarred up.

Disadvantages are:
1. It takes slightly longer to untar at the start of a build.

As currently implemented, this attaches the compacted vendor.tar.gz feature as a
rider on `verifyCargoDeps`, since both of them are relatively newly implemented
behavior that change the `cargoSha256`.

If this PR is accepted, I will push forward the remaining rust packages with a
series of treewide PRs to update the `cargoSha256`s.
2020-02-10 10:17:29 -05:00
..
android.section.md documentation: drop double 'the' 2019-11-09 10:10:47 +01:00
beam.xml beam-modules/hex-snapshot: remove 2019-11-17 13:45:57 +01:00
bower.xml doc: re-format 2019-09-18 22:12:54 +02:00
coq.xml doc: re-format 2019-09-18 22:12:54 +02:00
crystal.section.md docs: Add Crystal language framework section 2019-08-26 20:12:15 +02:00
dotnet.section.md dotnet: add framework doc 2020-02-09 19:26:15 -08:00
emscripten.section.md doc: organize chapters into parts, and reduce toc depth 2019-10-20 13:35:04 +02:00
gnome.xml doc/gnome: update wrapper args example 2019-12-10 18:11:55 -05:00
go.xml treewide: replace make/build/configure/patchFlags with nix lists 2019-12-30 13:31:06 +01:00
haskell.section.md nixpkgs manual: Update Haskell versions 2020-01-08 09:15:20 +01:00
idris.section.md doc: organize chapters into parts, and reduce toc depth 2019-10-20 13:35:04 +02:00
index.xml doc: merge package notes and package-specific notes 2019-10-20 13:35:04 +02:00
ios.section.md xcodeenv: bump default Xcode version to 11.1, default iOS SDK to 13.1. Add troubleshooting section to docs 2019-11-11 00:18:22 +01:00
java.xml doc: re-format 2019-09-18 22:12:54 +02:00
lua.xml doc: re-format 2019-09-18 22:12:54 +02:00
node.section.md doc: organize chapters into parts, and reduce toc depth 2019-10-20 13:35:04 +02:00
ocaml.xml doc: re-format 2019-09-18 22:12:54 +02:00
perl.xml doc: re-format 2019-09-18 22:12:54 +02:00
python.section.md doc: python: fixing mistake in venv example 2020-02-02 09:39:58 -08:00
qt.xml doc: re-format 2019-09-18 22:12:54 +02:00
r.section.md doc: organize chapters into parts, and reduce toc depth 2019-10-20 13:35:04 +02:00
ruby.section.md ruby.withPackages: init 2019-09-03 19:44:49 +00:00
ruby.xml doc: re-format 2019-09-18 22:12:54 +02:00
rust.section.md fetchcargo: use flat tar.gz file for vendored src instead of recursive hash dir 2020-02-10 10:17:29 -05:00
texlive.xml doc/texlive: Add "Custom packages" section (#74519) 2019-12-21 11:37:54 -05:00
titanium.section.md Add Titanium documentation section 2018-12-18 21:16:07 +01:00
vim.section.md doc: organize chapters into parts, and reduce toc depth 2019-10-20 13:35:04 +02:00