Page History

Turn Off History

Goal

Any given build done via NMI should be reproducible for the foreseeable future. This includes having all of the necessary input files and build scripts and being able to regenerate the resulting output files. NMI should be able to do so even if the upstream provider of a given package disappears.

Current Situation

Builds draw input files from a variety of locations. For the Condor builds these include git (the Condor source itself) and the web (external packages). Reproducing any given build requires that both git and the web site be available and complete. If an old external was deleted from the web site because Condor perceived it as no longer necessary, builds needing that external would no longer be reproducible.

The Condor source and documentation are pulled together on an NMI submit node. The externals are pulled on each individual build machine on an as needed basis, completely outside of NMI management. If the externals cache is being used, the input file will never be loaded.

Because each machine pulls together externals on its own, it's hard to say canonically how much disk space a given set of inputs takes. The Condor source is about 20MB while the documentation is about 1MB. The externals, excluding glibc, are about 107MB; a given build may not use all of the externals, but different builds typically share externals. glibc is complex, only platforms supporting the standard universe include it, and different platforms may use different glibc. A given glibc source is about 163MB, and we might use 2 or 3 across all of our builds. This gives a total size of about 20+1+107+(163*3)= 617MB. These are all compressed tarballs, further compression is unlikely to provide significant savings.

Thoughts