While experimenting with different approaches to the cross-cutting concerns of nixpkgs pinning and multiple Python versions, I appear to have launched a complete compilation of a large set of Python packages (scipy, jupyter, etc.)
The scheme I’m trying is based around something like this:
The commit id corresponds to the nixos-20.03 found on https://status.nixos.org/ a few hours ago (which seems to have been updated about 18 hours before I triggered the compilation described below).
Activating this environment with any of
direnv
nix-shell shell.nix
nix-shell shell.nix --argstr py-version 37
nix-shell shell.nix --argstr py-version 38
activates the environment without serious delay, with first attempts on any specific python version clearly downloading lots from the cache, as witnessed by multiple lines of the form
copying path '/nix/store/vrxkfqqkvl9g0q386zc4nlhd7mx1mh6w-python3.8-pyOpenSSL-19.1.0' from 'https://cache.nixos.org'...
However, in the case of Python 3.6
nix-shell shell.nix --argstr py-version 36
launched a bunch of compilations which have been going for over an hour and seem in no danger of finishing any time soon.
So I would like to understand more about how https://cache.nixos.org is populated and what I can reasonably expect to be available in the cache.
Sorry if I’m being thick, but I don’t see how this leads me to understand how things get into the cache in the first place. It explains why things might be missing, but not why anything should ever be there at all.
What is the process that populates the cache?
(Are build jobs launched automatically under some circumstances? Is it users’ builds which feed build results into the cache? …)