You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This pulls just enough of distutils' and modify the make_tarball
function in order to respect SOURCE_DATE_EPOCH; this will ensure that
_when set_ no timestamp in the final archive is greater than timestamp.
This allows (but is not always sufficient), to make bytes for bytes
reproducible build for example:
- This does not work with `gztar`, and zip does embed a timestamp in
the header which currently is `time.time()` in the standard library.
- if some fields passed to setup.py have on determinstic ordering (for
example using sets for dependencies).
Partial work toward #2133, with this I was able to make two bytes-identical
sdist of IPython.
You will see three types of modifications:
- Referring explicitly to some of distutils namespace in a couple of
places, to avoid duplicating more code. Note that despite some names
_not_ changing as the name resolution is with respect to current
module, unchanged functions will now use our modified version.
- overwrite `make_archive` in sdist to use our patched version of the
functions in archive_utils.
- update make_tarball to look for SOURCE_DATE_EPOCH in environment and
setup a filter to modify mtime while taring.
0 commit comments