-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
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
setuptools: sdist reproducibility #105502
Comments
50.3.1 is now in staging-next. #105584 As you linked to, this is in the end a distutils issue. That makes it a bit complicated, because distutils is moved out of cpython, which means any solution will likely be Python version dependent. |
How do you mean that? It looks like https://github.com/python/cpython/blob/master/Lib/distutils/archive_util.py is still there? (I'm not too familiar with the ecosystem, might have missed something) |
Still a draft though https://www.python.org/dev/peps/pep-0632/, I thought it was already accepted. |
We already re-pack the source distribution to make the timestamps consistent, but the result is still not entirely stable because by default tar does not sort the files in the archive deterministically. This PR makes sure the entries are sorted by name. NixOS#105502
We already re-pack the source distribution to make the timestamps consistent, but the result is still not entirely stable because by default tar does not sort the files in the archive deterministically. This PR makes sure the entries are sorted by name. #105502
Long-closed by #105680 |
Describe the bug
The 'sdist' intermediate source derivation of the python setuptools is not currently reproducible.
To Reproduce
Steps to reproduce the behavior:
nix-store --query --graph $(nix-instantiate '<nixpkgs>' -A python3Packages.setuptools) | grep sdist
nix-build <derivation-path> --check
Expected behavior
'check' should succeed.
We already untar and then retar the generated archive to control the timestamps.
While the version of setuptools we're on (47.3.1) is not very old (June 2020), upstream has since had several releases, up to v50.3.2. A quick test reveals 50.3.2 also does not yet produce stable timestamps. Upstream work on this has started (pypa/setuptools#2136, pypa/setuptools#1512, python/cpython#20331) but stalled.
The text was updated successfully, but these errors were encountered: