pex-tool / pex

A tool for generating .pex (Python EXecutable) files, lock files and venvs.
https://docs.pex-tool.org/
Apache License 2.0
2.83k stars 266 forks source link

`test_reproducible_build_c_flag_from_source` is non-reproducible under `setuptools>=75.4`. #2594

Closed jsirois closed 4 days ago

jsirois commented 1 week ago

Nothing jumps out from the change-log https://setuptools.pypa.io/en/stable/history.html#v75-4-0 That said, pinning under 75.4 restores reproducibility of test_reproducible_build_c_flag_from_source in /home/jsirois/dev/pex-tool/pex/tests/integration/test_reproducible.py; so there is likely some bug introduced in setuptools with that release leading to non-reproducible builds. Track that down with a minimal repro case and submit an issue / fix.

jsirois commented 4 days ago

This was not a setuptools issue. The issue was the 3.8 shard was running the reproducibility tests using 3.8, 3.9 and 3.10 and the 3.9 and 3.10 iterations were picking out latest setuptools while the 3.8 iteration was picking out an older setuptools since setuptools recently dropped 3.8 support. Its fully expected that using a different build system under the covers might produce different wheels; so the fix is to ensure the test iterations use the same version of setuptools / same underlying build system.