nixpkgs/pkgs/top-level
Adrian Gierakowski 5b4a8db4d9 build-support/docker: customisable layering strategy
Allow customisation of the algorithm used to convert nix references
graph (created from docker image contents) to docker layers.

A collection of building blocks (python functions) is provided, which
use can assembled into a processing pipeline by specifying a list of
operations (and their initial arguments) via a nix list.

Nix references graph if first converted into a python igraph.Graph
object (with each vertex representing a nix path), which is then fed
into the user defined pipeline. Each stage in the pipeline represents a
function call, with initial arguments specified by the user in nix, and
the last argument being the result of the previous stage in the pipeline
(or the initial Graph object). Each step of the pipeline is expected to
produce a data structure consisting of arbitrarily  nested lists/dicts
with Graph objects (representing docker layers) at it's leafs. The
result of the last stage in the pipeline is recursively flattened (with
each dict converted into list of values), until a flat list of Graphs
remains. This is then output as a json array of arrays (each Graph
converted into an array of paths).

This functionality is made available via new `layeringPipeline` argument
to the `streamLayeredImage`/`buildLayeredImage` functions. The default
value of the argument has been chosen to to preserve current layering
behaviour.

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2024-11-09 16:21:48 +00:00
..
pkg-config tests.pkg-config.defaultPkgConfigPackages.wayland-scanner: fix the test (#346086) 2024-10-26 20:01:07 +03:00
ada-packages.nix gnatPackages.gpr2: init at 24.0.0 2024-10-25 23:03:58 +02:00
agda-packages.nix
aliases.nix Revert "haskellPackages: update stackage and hackage" 2024-11-08 18:36:29 +01:00
all-packages.nix build-support/docker: customisable layering strategy 2024-11-09 16:21:48 +00:00
beam-packages.nix
by-name-overlay.nix
config.nix
coq-packages.nix coqPackages.ExtLib: 0.12.1 → 0.12.2 2024-11-07 14:55:06 +01:00
cubocore-packages.nix
cuda-packages.nix cudaPackages_{10*,11*}: warn about upcoming removal (#342112) 2024-10-03 13:48:13 +01:00
darwin-aliases.nix moltenvk: update for the new xcbuild, the new SDK, and the new version plus cleanup (#346962) 2024-10-11 01:29:59 +01:00
darwin-packages.nix Merge master into staging-next 2024-10-29 18:04:32 +00:00
default.nix
dhall-packages.nix
dotnet-packages.nix
emacs-packages.nix
emilua-plugins.nix emiluaPlugins.tdlib: init at 1.0.3 2024-09-26 17:08:29 +00:00
emscripten-packages.nix treewide: Fix indentation in strings 2024-10-22 21:36:42 +02:00
gnuradio-packages.nix gnuradio3_8: fix build by using qwt6_1 2024-10-19 21:47:58 +03:00
hare-third-party.nix
haskell-packages.nix haskell.compiler.ghc98: 9.8.3 -> 9.8.2 2024-10-21 21:38:46 +02:00
haxe-packages.nix
impure.nix
java-packages.nix javaPackages.openjdk{8,11,17}-bootstrap: fix eval on Darwin 2024-10-25 13:32:47 +01:00
kodi-packages.nix
linux-kernels.nix add linux_{default,latest} to linuxKernel.kernels (#317498) 2024-11-08 08:56:48 +03:00
lua-packages.nix
make-tarball.nix
metrics.nix
nim-overrides.nix
nixpkgs-basic-release-checks.nix
ocaml-packages.nix ocamlPackages.kdf: init at 1.0.0 2024-10-28 07:42:43 +01:00
octave-packages.nix
packages-config.nix steam (and friends): migrate to by-name, small cleanups all over 2024-10-16 23:27:24 +03:00
perl-packages.nix perlPackages.mimeConstruct: add passthru.binlore (#332103) 2024-11-06 00:12:28 +01:00
php-packages.nix php: 8.4.0RC3 -> 8.4.0RC4, 8.3.12 -> 8.3.13 (#354562) 2024-11-09 13:20:50 +01:00
python2-packages.nix
python-aliases.nix python312Packages.pyvicare-neo: drop 2024-11-07 19:05:07 +01:00
python-packages.nix python311Packages.whispers: add missing deps, unbreak (#354501) 2024-11-09 00:06:34 -08:00
qt5-packages.nix xwaylandvideobridge: support building with qt6, clean up dependencies 2024-09-27 08:16:34 +03:00
qt6-packages.nix xwaylandvideobridge: support building with qt6, clean up dependencies 2024-09-27 08:16:34 +03:00
release-alternatives.nix
release-attrpaths-superset.nix Re-add test-pkgs to excluded-attrnames-at-any-depth 2024-11-06 04:37:10 -08:00
release-cross.nix
release-cuda.nix
release-haskell.nix Revert "haskellPackages: update stackage and hackage" 2024-11-08 18:36:29 +01:00
release-lib.nix release-lib: build packages without meta.platforms on all platforms 2024-10-29 19:42:46 +00:00
release-outpaths.nix
release-perl.nix
release-python.nix
release-r.nix
release-small.nix treewide: replace webkitgtk to webkitgtk_4_0 2024-10-11 17:23:43 -06:00
release-unfree-redistributable.nix release-unfree-redistributable: init (#348079) 2024-10-24 12:34:26 +02:00
release.nix release-lib: add exception to build olm on hydra 2024-10-12 16:26:56 +02:00
ruby-packages.nix jekyll-compose: init at 0.12.0 (#322694) 2024-10-29 15:46:56 +08:00
splice.nix splice.nix: improve performance with early cut-off (#350295) 2024-10-31 18:42:15 +02:00
stage.nix
tcl-packages.nix treewide: move tcl libraries under tclPackages 2024-10-26 16:23:15 +00:00
unixtools.nix
wine-packages.nix