[PATCH] doc: ensure sphinx output is reproducible
Thomas Monjalon
thomas at monjalon.net
Sun May 26 13:30:36 CEST 2024
27/11/2023 18:00, Bruce Richardson:
> On Mon, Nov 27, 2023 at 05:45:52PM +0100, Thomas Monjalon wrote:
> > 06/07/2023 14:49, Christian Ehrhardt:
> > > On Mon, Jul 3, 2023 at 5:29 PM Thomas Monjalon <thomas at monjalon.net> wrote:
> > > >
> > > > 29/06/2023 14:58, christian.ehrhardt at canonical.com:
> > > > > From: Christian Ehrhardt <christian.ehrhardt at canonical.com>
> > > > >
> > > > > By adding -j we build in parallel, to make building on multiprocessor
> > > > > machines more effective. While that works it does also break
> > > > > reproducible builds as the order of the sphinx generated searchindex.js
> > > > > is depending on execution speed of the individual processes.
> > > > [...]
> > > > > -if Version(ver) >= Version('1.7'):
> > > > > - sphinx_cmd += ['-j', 'auto']
> > > >
> > > > What is the impact on build speed on an average machine?
> > >
> > > Hi,
> > > I haven't tested this in isolation as it was just a mandatory change
> > > on the Debian/Ubuntu side.
> > > And the time for exactly and only the doc build is hidden inside the
> > > concurrency of meson.
> > > But I can compare a full build [1] and a full build with the change [2].
> > >
> > > That is an average build machine and it is 35 seconds slower with the
> > > change to no more do doc builds in parallel.
> >
> > I would prefer adding an option for reproducible build
> > (which is not a common requirement).
> >
> Taking a slightly different tack, is it possible to sort the searchindex.js
> file post-build, so that even reproducible builds get the benefits of
> parallelism?
We never got a response to this question.
I apply this patch, but I'm waiting for an effort in the direction
Bruce is proposing.
I remove the line "from packaging.version import Version" which becomes useless.
Same for PIPE and STDOUT.
For now we are slowing down the build of docs because there is a strong push
for reproducibility and not enough effort for doing it efficiently.
More information about the dev
mailing list