153472 Commits

Author SHA1 Message Date
Graham Christensen
fd045173ce referencesByPopularity: init to sort packages by a cachability heuristic
Using a simple algorithm, convert the references to a path in to a
sorted list of dependent paths based on how often they're referenced
and how deep in the tree they live. Equally-"popular" paths are then
sorted by name.

The existing writeReferencesToFile prints the paths in a simple
ascii-based sorting of the paths.

Sorting the paths by graph improves the chances that the difference
between two builds appear near the end of the list, instead of near
the beginning. This makes a difference for Nix builds which export a
closure for another program to consume, if that program implements its
own level of binary diffing.

For an example, Docker Images. If each store path is a separate layer
then Docker Images can be very efficiently transfered between systems,
and we get very good cache reuse between images built with the same
version of Nixpkgs. However, since Docker only reliably supports a
small number of layers (42) it is important to pick the individual
layers carefully. By storing very popular store paths in the first 40
layers, we improve the chances that the next Docker image will share
many of those layers.*

Given the dependency tree:

    A - B - C - D -\
     \   \   \      \
      \   \   \      \
       \   \ - E ---- F
        \- G

Nodes which have multiple references are duplicated:

    A - B - C - D - F
     \   \   \
      \   \   \- E - F
       \   \
        \   \- E - F
         \
          \- G

Each leaf node is now replaced by a counter defaulted to 1:

    A - B - C - D - (F:1)
     \   \   \
      \   \   \- E - (F:1)
       \   \
        \   \- E - (F:1)
         \
          \- (G:1)

Then each leaf counter is merged with its parent node, replacing the
parent node with a counter of 1, and each existing counter being
incremented by 1. That is to say `- D - (F:1)` becomes `- (D:1, F:2)`:

    A - B - C - (D:1, F:2)
     \   \   \
      \   \   \- (E:1, F:2)
       \   \
        \   \- (E:1, F:2)
         \
          \- (G:1)

Then each leaf counter is merged with its parent node again, merging
any counters, then incrementing each:

    A - B - (C:1, D:2, E:2, F:5)
     \   \
      \   \- (E:1, F:2)
       \
        \- (G:1)

And again:

    A - (B:1, C:2, D:3, E:4, F:8)
     \
      \- (G:1)

And again:

    (A:1, B:2, C:3, D:4, E:5, F:9, G:2)

and then paths have the following "popularity":

    A     1
    B     2
    C     3
    D     4
    E     5
    F     9
    G     2

and the popularity contest would result in the paths being printed as:

    F
    E
    D
    C
    B
    G
    A

* Note: People who have used a Dockerfile before assume Docker's
Layers are inherently ordered. However, this is not true -- Docker
layers are content-addressable and are not explicitly layered until
they are composed in to an Image.
2018-09-26 15:50:10 -04:00
Graham Christensen
2bf0ee3b2b dockertools: tarsum: turn in to a buildInput 2018-09-26 15:50:04 -04:00
Jörg Thalheim
725b57ba11
Merge pull request #47283 from flokli/elasticsearch-dsl-6.2.1
pythonPackages.elasticsearch-dsl: 0.0.9 -> 6.2.1
2018-09-24 20:40:21 +01:00
Peter Simons
f705ee21f6 Update overrides for ghc-8.6.x. 2018-09-24 21:19:35 +02:00
Peter Simons
873476c55a haskell-hspec-core: use latest version when building with ghc 8.6.x 2018-09-24 21:19:35 +02:00
Peter Simons
9de1461f45 haskell-stm: update overrides for the new 2.5.x version 2018-09-24 21:19:35 +02:00
Peter Simons
21dc7a6aa5 haskell-text: update overrides for the new version 2018-09-24 21:19:35 +02:00
Peter Simons
9e963c020e haskell-stm: update overrides for the new 2.5.x version 2018-09-24 21:19:34 +02:00
Peter Simons
dbffdee9d2 Add a couple of overrides to fix build with GHC 8.6.1. 2018-09-24 21:19:34 +02:00
Peter Simons
89972ff45f all-cabal-hashes: update snapshot to Hackage at 2018-09-18T11:13:20Z 2018-09-24 21:19:34 +02:00
Peter Simons
c50365ec92 hackage-packages.nix: automatic Haskell package set update
This update was generated by hackage2nix v2.11.1 from Hackage revision
be1e8a29d2.
2018-09-24 21:19:29 +02:00
Peter Simons
2fc9fee6b2 hackage2nix: disable broken Hydra builds 2018-09-24 21:18:51 +02:00
Florian Klink
18c7fbd78d pythonPackages.elasticsearch-dsl: 0.0.9 -> 6.2.1 2018-09-24 21:08:31 +02:00
Domen Kožar
6eacc17157
nixos tests: move common configuration into separate file
This allows tests outside nixos to use acme setup.
2018-09-24 20:07:33 +01:00
R. RyanTM
f37b39d279 jackett: 0.10.160 -> 0.10.198
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/jackett/versions
2018-09-24 20:40:29 +02:00
Jörg Thalheim
d123b30ed1
Merge pull request #47279 from asymmetric/asymmetric/remove-dapptools
Remove DappHub projects
2018-09-24 18:49:18 +01:00
Jörg Thalheim
82e739a003
Merge pull request #47221 from Mic92/vim-additional-nix-code
vim: remove legacy additional-nix-code
2018-09-24 18:48:17 +01:00
Maximilian Bosch
2babfb5a88 eztrace: 1.0.6 -> 1.1-7 (#47282)
See https://hydra.nixos.org/build/80721509
Addresses #45960
2018-09-24 19:34:35 +02:00
Lorenzo Manacorda
6017c6fa5b *: remove DappHub projects
DappHub maintains a separate overlay at
https://github.com/dapphub/dapptools/blob/master/overlay.nix
2018-09-24 19:24:06 +02:00
José Romildo Malaquias
7cd824116a shades-of-gray-theme: init at 1.1.1 (#47280) 2018-09-24 19:22:56 +02:00
xeji
9163c057e7
Merge pull request #47155 from xeji/p/installer-tests
nixos/tests/installer: prevent race between parted and udev
2018-09-24 18:59:50 +02:00
Will Dietz
2da6f215d3
Merge pull request #47281 from dtzWill/fix/llvm7-musl-rebase
llvm7: update sanitizer patch to fix w/musl
2018-09-24 11:49:56 -05:00
Andrew Dunham
ba278c3b87 boost: limit concurrent jobs to the maximum supported number (#47255) 2018-09-24 18:21:16 +02:00
Will Dietz
5b2de5126d llvm7: update musl patch for sanitizers 2018-09-24 11:19:05 -05:00
Will Dietz
3bd0e50a28 libpfm: don't use -Werror 2018-09-24 11:19:04 -05:00
Jörg Thalheim
e10361b30a
Merge pull request #47275 from dtzWill/fix/iputils-musl
iputils: upstream fixes for musl
2018-09-24 17:16:30 +01:00
Andreas Rammhold
24c58bd1cc
Merge pull request #47257 from taku0/firefox-bin-62.0.2
firefox, firefox-bin:: 61.0.2 -> 62.0.2,  firefox-esr: 60.2.0esr -> 60.2.1esr [Moderate security fixes]
2018-09-24 17:54:26 +02:00
Elis Hirwing
4406745ab4 testssl: 2.9.5-6 -> 2.9.5-7 (#47274)
Changelog: https://github.com/drwetter/testssl.sh/releases/tag/v2.9.5-7
2018-09-24 17:40:24 +02:00
xeji
c525111133
nixos/tests/hound: fix non-deterministic failure (#47152)
The test failed on Hydra in one instance because a request to the
server was sent before indexing was finished.
Retry the request until it succeeds (or times out).
2018-09-24 17:31:46 +02:00
R. RyanTM
fe287e755f mixxx: 2.1.3 -> 2.1.4 (#47012)
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/mixxx/versions
2018-09-24 17:23:58 +02:00
xeji
0166be71f6
Merge pull request #47040 from r-ryantm/auto-update/jdupes
jdupes: 1.10.2 -> 1.10.4
2018-09-24 17:22:05 +02:00
R. RyanTM
cb4eb106e4 eid-mw: 4.4.3 -> 4.4.7 (#47076)
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/eid-mw/versions
2018-09-24 17:20:55 +02:00
Will Dietz
d84c6bec29 iputils: upstream fixes for musl 2018-09-24 10:19:01 -05:00
Edward Tjörnhammar
491a580716
pythonPackages.sharedmem: init at 0.3.5 2018-09-24 17:00:55 +02:00
Edward Tjörnhammar
f9c4a74b73
jetbrains.pycharm-professional: 2018.2.3 -> 2018.2.4 2018-09-24 16:39:40 +02:00
Edward Tjörnhammar
feb57bc9b9
jetbrains.pycharm-community: 2018.2.3 -> 2018.2.4 2018-09-24 16:39:11 +02:00
Edward Tjörnhammar
546dfb51a6
jetbrains.goland: 2018.2.2 -> 2018.2.3 2018-09-24 16:38:35 +02:00
Edward Tjörnhammar
8ab4cbdac3 nixos: initrd/luks: make uuid specified devices discoverable 2018-09-24 16:35:46 +02:00
Edmund Wu
4b1e3376d1 jetbrains.webstorm: 2018.2.2 -> 2018.2.3 2018-09-24 16:35:17 +02:00
Edmund Wu
9b69a2520a jetbrains.ruby-mine: 2018.2.1 -> 2018.2.2 2018-09-24 16:35:17 +02:00
Edmund Wu
88692dd376 jetbrains.rider: 2018.2 -> 2018.2.3 2018-09-24 16:35:17 +02:00
Edmund Wu
3bc77e5977 jetbrains.pycharm-professional: 2018.2.2 -> 2018.2.3 2018-09-24 16:35:17 +02:00
Edmund Wu
b30e64bb8a jetbrains.pycharm-community: 2018.2.2 -> 2018.2.3 2018-09-24 16:35:17 +02:00
Edmund Wu
6f78c882da jetbrains.phpstorm: 2018.2.2 -> 2018.2.3 2018-09-24 16:35:17 +02:00
Edmund Wu
7ce6836e95 jetbrains.idea-ultimate: 2018.2.2 -> 2018.2.4 2018-09-24 16:35:17 +02:00
Edmund Wu
e2ff1bceb3 jetbrains.idea-community: 2018.2.2 -> 2018.2.4 2018-09-24 16:35:17 +02:00
Edmund Wu
397215b8b6 jetbrains.goland: 2018.2.1 -> 2018.2.2 2018-09-24 16:35:17 +02:00
Edmund Wu
0174f259ac jetbrains.datagrip: 2018.2.2 -> 2018.2.4 2018-09-24 16:35:17 +02:00
Edmund Wu
98fe28e5ab jetbrains.clion: 2018.2.2 -> 2018.2.4 2018-09-24 16:35:17 +02:00
Maximilian Bosch
baa7e52fe0 python3Packages.google-compute-engine: fix build (#47267)
The dependency `distro` was missing.
See https://hydra.nixos.org/build/81330387

Addresses #45960
2018-09-24 15:50:52 +02:00