Add and use a pyproject-compatible build backend for extensions.
Review Request #14140 — Created Sept. 4, 2024 and submitted
We now support building extensions entirely based on a
pyproject.toml
.
This will be the standard going forward, and will require the following
configuration:[build-system] requires = [ 'reviewboard~=<version>', 'reviewboard[extension-packaging]', ] build-backend = 'reviewboard.extensions.packaging.backend'
If there's an existing
setup.py
, then things will continue to work
as-is. If one doesn't exist, it will be generated during the lifecycle
of the build, calling into our ownsetup()
method. This is the same
process that setuptools itself uses when building packages, since it
still uses its own machinery under the hood.
rbext create
will now generate this file automatically, and no longer
generatessetup.py
.The documentation has been updated to reference
pyproject.toml
and
show examples, replacing all oldsetup.py
references, old references
to eggs, and old command line examples, in an effort to help modernize
some of this.
Generated new extensions and built them without issue.
Added a bare-bones
pyproject.toml
to an existing package, specifying
the new build backend, and verified it built.Built the docs and went over the changes, making sure they didn't appear
broken.
Summary | ID |
---|---|
c07213a454995960b2fe3c9194db2bf9d0b3673b |
Description | From | Last Updated |
---|---|---|
We should give a short comment to describe why this is necessary. Would this ever need to change depending on … |
maubin | |
Old typo here: "Once this is Python package is installed..." |
maubin | |
module level import not at top of file Column: 1 Error code: E402 |
reviewbot | |
This one wasn't added in 7.1. |
maubin | |
module level import not at top of file Column: 1 Error code: E402 |
reviewbot | |
module level import not at top of file Column: 1 Error code: E402 |
reviewbot |
- Change Summary:
-
- Added guidance comments in the
pyproject.toml
example. - Fixed some typos and wording for legacy backends.
- Removed a
Version Added: 7.1
for an existing argument.
- Added guidance comments in the
- Commits:
-
Summary ID aaaf5c6486c5c4e8ef18c99f2afb45e443527a59 1101a6d850c3c49df6a820a94a8ac0b85cee5664 - Diff:
-
Revision 2 (+820 -332)
- Change Summary:
-
Removed the now-unused function for generating
setup.py
. - Commits:
-
Summary ID 1101a6d850c3c49df6a820a94a8ac0b85cee5664 c07213a454995960b2fe3c9194db2bf9d0b3673b - Diff:
-
Revision 3 (+816 -478)