• 
      

    Add and use a pyproject-compatible build backend for extensions.

    Review Request #14140 — Created Sept. 4, 2024 and submitted — Latest diff uploaded

    Information

    Review Board
    release-7.1.x

    Reviewers

    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 own setup() 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
    generates setup.py.

    The documentation has been updated to reference pyproject.toml and
    show examples, replacing all old setup.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.

    Commits

    Files