[Distutils] reproducible builds

Robin Becker robin at reportlab.com
Wed Mar 22 04:57:28 EDT 2017

On 21/03/2017 16:52, Brett Cannon wrote:
> On Tue, 21 Mar 2017 at 04:54 Marius Gedminas <marius at gedmin.as> wrote:
>> Python 3.6 changed the dict implementation so the ordering is always stable
>> (and matches insertion order).
> Do realize that is an implementation detail and not guaranteed by the
> language specification, so it won't necessarily hold in the future or for
> other interpreters.
> -Brett

one of the main issues in the reportlab pdf variability are the dict objects 
which come out as

/Key1 value
/Key n

I think we have these coming out in sorted order without reliance on the 
underlying dicts. Up to now we used pixel equality ie the appearance, but as I 
understand it, reproducibility means byte equality which is harder. A bit of 
work has been done making the variation between Python 2.7 & 3.6 renderings go 
away. This reproducibility effort has revealed several bugs which is in itself 
Robin Becker

More information about the Distutils-SIG mailing list