Use file timestamps for wheel content dates#121
Closed
mattsta wants to merge 1 commit intopython-poetry:mainfrom
Closed
Use file timestamps for wheel content dates#121mattsta wants to merge 1 commit intopython-poetry:mainfrom
mattsta wants to merge 1 commit intopython-poetry:mainfrom
Conversation
Previously the file modify timestamps weren't checked, so Python defaulted all source files to a timestamp of 1980-01-01 while poetry-core was also setting the metadata files to a fixed timestamp of 2016-01-01 to allow reproducible builds. This change uses real file change timestamps for package files as well as updating the metadata timestamp logic to use the highest timestamp of all source files (since source files are read/written before metadata files). Using the highest timestamp of the source files still guarantees wheel output will not change if rebuilt between source file changes.
Member
|
I am not sure if this is something we should do. While this produces reproducible builds on the same machine, it can lead to different content hashes on a different environment. If the sdists today do not create reproducible artefacts, we should probably consider fixing that instead of reusing source timetsamps in the wheel. |
Member
|
Superseded by #766 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously the file modify timestamps weren't checked, so Python
defaulted all source files to a timestamp of 1980-01-01 while
poetry-core was also setting the metadata files to a fixed timestamp
of 2016-01-01 to allow reproducible builds.
This change uses real file change timestamps for package files as well
as updating the metadata timestamp logic to use the highest timestamp
of all source files (since source files are read/written before metadata
files).
Using the highest timestamp of the source files still guarantees
wheel output will not change if rebuilt between source file changes.
Verified wheel dates match the filesystem dates now:
Resolves: python-poetry/poetry#3531