Switch RBTools's packaging to pyproject.toml.
Review Request #14138 — Created Sept. 3, 2024 and submitted
RBTools has historically been a setuptools-based project, relying
heavily on the dynamic ability ofsetup.py
. Over the years, the Python
ecosystem has moved topyproject.toml
files, with pluggable build
backends. This has reached a point of maturity, andpip
will soon
remove support for installing either production or editable installs
from a legacy source tree.We now use
pyproject.toml
to define all of the metadata of the
package. Since RBTools's packaging needs are simple, we can get away
with using thesetuptools.build_meta
backend directly.
Tested isolated builds in the following setups:
python -m build .
(builds sdist, then a wheel from the sdist)python -m build . -s
(builds sdist)python -m build . -w
(builds wheel)
Tested isolated editable installs using pip install -e .
and
non-isolated editable installs using pip install -e --no-build-isolation
and with make develop
.
Performed full tree diffs of generated wheels from ./setup.py bdist_wheel
(prior to this change) and both wheel-producing python -m build
methods.
Verified that all content was identical, with the exception of differences
in source map paths and some modern metadata for the package.
Manually inspected the distribution contents to make sure we had everything
we want in the package and nothing we don't want.
Summary | ID |
---|---|
cedc11073480b0a593ce993fe9e45acc1b855fd0 |
- Change Summary:
-
- Fixed the Python version range. The old range in
setup.py
was incorrect. - Added
docs
to the source distribution.
- Fixed the Python version range. The old range in
- Commits:
-
Summary ID c502eb4fd19078f13a03774acb6736bc3bdae2ec cedc11073480b0a593ce993fe9e45acc1b855fd0 - Diff:
-
Revision 2 (+236 -462)