Switch RBTools's packaging to pyproject.toml.
Review Request #14138 — Created Sept. 3, 2024 and submitted — Latest diff uploaded
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.