[ci] [python-package] enforce 'twine check' and 'check-wheel-contents' on Python distributions #5707
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.
Contributes to #5061.
This PR proposes introducing two new linters that check the contents of Python package distributions (sdists and wheels) for common issues.
twine check
: checks that distributions bundled README will render correctly on PyPIcheck-wheel-contents
: catches problems like accidentally bundling.pyc
files into the distribution, or including multiple files with identical contentNotes for Reviewers
I think these checks are generically useful in the way that all linters are...putting shared agreements into CI to reduce the scope of things that maintainers and contributors need to remember to check.
But in addition, it contributes to #5061 because these checks will help detect problems accidentally, newly introduced by changes to how LightGBM builds wheels.
How I tested this
The first commit on this PR adds the checks but doesn't fix any of the issues they found.
And you can see in the logs that they ran successfully and failed builds 🎉