[release] Python universal wheel support

Sean McGinnis sean.mcginnis at gmail.com
Mon Jan 20 18:01:19 UTC 2020


Greetings,

We have just merged a change to the release-openstack-python job that 
changes the wheels we produce to not be universal.

For some background - we added an explicit flag of "--universal" to the 
creation of wheels a while back. For projects that have both Python 2 
and 3 support, you want an universal wheel. Not all (probably most) 
projects did not add this flag to their setup.cfg, so overriding at the 
release job level was considered a good way to make sure our output was 
what we wanted at the time.

We now have the majority of projects dropping py2 support, so we 
actually no longer want to create these universal wheels if py2 support 
has been dropped. That has actually been seen to cause some issues.

The downside with this change is that the job is for *all* deliverables 
we release, including stable releases. So with this change, any new 
stable branches will no longer get universal wheels if the flag has not 
been set locally. This was deemed a good tradeoff with the current needs 
though. The lack of a univeral wheel may just make installation of py2 
stable deliverables just slightly slower, but should not cause any real 
issues.

Actions
------

Most likely this won't require any actions on the project team's part. 
If you have a project that still supports both py2 and py3 and do not 
have the flag set in setup.cfg, that can be added to still get the 
universal wheels built. That is done by adding the following:

```
[bdist_wheel]
universal = 1
```

Again, the performance impact is probably very minimal during 
installation, so this shouldn't be a major concern.

If there are any oddities noticed after this change, please bring them 
up and we can help investigate what is happening.

Thanks!

Sean




More information about the openstack-discuss mailing list