-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure that make build-wheels
builds wheels reproducibly where possible
#196
Comments
@redshiftzero currently maintains https://reproduciblewheels.com/ as a useful index of Python projects which can be built as wheels reproducibly (including the wheels from https://pypi.securedrop.org/simple/), with updates to https://github.com/redshiftzero/reproduciblewheels/blob/main/site_data.json being pushed daily via bot. For further comparability, it may be desirable to specify the same build parameters as used for that project. Quote:
|
We discussed today that it might be nice to standardize on the timestamp of Aaron's first SD commit. Per |
As part of this task, we should add a CI reproducibility check, to ensure changes to the wheel building command are correct. |
Took a look at this today. Used the excellent diffoscope & reprotest tools to examine what was different about the wheels, specifically for the
Also added a umask of 022 (sane default) to satisfy some other reproducibility checks automatically run by reprotest. In fact, out of all the checks that reprotest provides, our wheels fail only on the When using reprotest, however, the platform for two dependencies of securedrop-client gets improperly set as So, next steps are:
|
It looks to me like this issue is fully resolved, as originally scoped, by #211 (which does add a reproducibility check to CI as well, see https://app.circleci.com/pipelines/github/freedomofpress/securedrop-debian-packaging/834/workflows/cee208e3-34c8-4f65-b8d5-be75bf34c200/jobs/6446), am I missing something or can we close? Any additional work should ideally be scoped into follow-up issues, IMO. |
Currently, the
make build-wheels
target and the underlyingscripts/build-sync-wheels
script does not setSOURCE_DATE_EPOCH
or specify a build directory. As a result, it does not create reproducible wheels, which is an important requirement for further build automation.We should ensure that this target builds wheels reproducibly whenever possible without further modification.
The text was updated successfully, but these errors were encountered: