Re: Make documentation builds reproducible

Tristan Partin <tristan@neon.tech>

From: "Tristan Partin" <tristan@neon.tech>
To: "Peter Eisentraut" <peter@eisentraut.org>
Cc: "pgsql-hackers" <pgsql-hackers@postgresql.org>
Date: 2023-08-24T18:44:34Z
Lists: pgsql-hackers
On Wed Aug 23, 2023 at 2:24 PM CDT, Peter Eisentraut wrote:
> Somewhere at PGCon, I forgot exactly where, maybe in the same meeting 
> where we talked about getting rid of distprep, we talked about that the 
> documentation builds are not reproducible (in the sense of 
> https://reproducible-builds.org/).  This is easily fixable, the fix is 
> available upstream 
> (https://github.com/docbook/xslt10-stylesheets/issues/54) but not 
> released.  We can backpatch that into our customization layer.  The 
> attached patch shows it.

I am a tiny bit confused here. The commit that solved the issue was 
merged into the master branch in 2018. GitHub lists the lastest release 
as being in 2020. A quick git command shows this has been in releases 
since December of 2018.

	$ git --no-pager tag --contains 0763160
	ndw-test-001
	snapshot-2018-12-07-01
	snapshot-ndw-test/2019-10-04
	snapshot/2018-09-28-172
	snapshot/2018-09-28-173
	snapshot/2018-09-28-174
	snapshot/2018-09-28-175
	snapshot/2018-09-29-176
	snapshot/2018-09-29-177
	snapshot/2018-09-30-178
	snapshot/2018-09-30-179
	snapshot/2018-10-01-180
	snapshot/2018-10-02-183
	snapshot/2018-10-02-184
	snapshot/2018-10-16-185
	snapshot/2018-10-16-186
	snapshot/2018-10-21-188
	snapshot/2018-11-01-191
	snapshot/2019-10-05-bobs
	snapshot/2020-05-28-pdesjardins
	snapshot/2020-06-03

Is there anything I am missing? Is Postgres relying on releases older 
than snapshot-2018-12-07-01? If so, is it possible to up the minimum 
version?

> I had actually often wanted this during development.  When making 
> documentation tooling changes, it's useful to be able to compare the 
> output before and after, and this will eliminate false positives in that.
>
> This patch addresses both the HTML and the FO output.  The man output is 
> already reproducible AFAICT.  Note that the final PDF output is 
> currently not reproducible; that's a different issue that needs to be 
> fixed in FOP.  (See 
> https://wiki.debian.org/ReproducibleBuilds/TimestampsInPDFGeneratedByApacheFOP.)

I think reproducibility is very important. Thanks for taking this on! 

-- 
Tristan Partin
Neon (https://neon.tech)



Commits

  1. Fix documentation build with older docbook-xsl

  2. Make documentation builds reproducible