build-python-release: pyproject-build by default
The PyPA "build" project is the canonical pyproject (PEP 517) build frontend, and is necessary in cases where SetupTools-based projects want to do modern Python packaging standards-compliant builds. The SetupTools maintainers have long since deprecated direct calls to setup.py scripts, with this as the preferred solution. Note that pyproject-build is designed to be backwards-compatible with old-style SetupTools projects that don't have a pyproject.toml file, so this should be a safe and transparent change. That said, we include a failsafe switch to bring back the old behavior just in case it's needed by some projects for unexpected reasons. Change-Id: I9b28c97092c32870bf730f5ca6cac966435370bc
This commit is contained in:
parent
087406800d
commit
85c494e219
roles/build-python-release
@ -2,19 +2,25 @@ Build sdist and wheel for Python projects.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: release_python
|
||||
:default: python
|
||||
|
||||
The python interpreter to use. Set it to "python3" to use python 3,
|
||||
for example.
|
||||
|
||||
.. zuul:rolevar:: build_wheel
|
||||
:default: true
|
||||
|
||||
Whether to build a wheel. Set to false to just build an sdist tarball.
|
||||
|
||||
.. zuul:rolevar:: legacy_setup
|
||||
:default: false
|
||||
|
||||
By default, the role uses pyproject-build. Set this to true if you need
|
||||
to use old-style direct invocation of setup.py instead.
|
||||
|
||||
.. zuul:rolevar:: release_python
|
||||
:default: python
|
||||
|
||||
The python interpreter to use. Set it to "python3" to use python 3,
|
||||
for example. Only relevant when legacy_setup is enabled.
|
||||
|
||||
.. zuul:rolevar:: bdist_wheel_xargs
|
||||
:default: ''
|
||||
|
||||
Extra arguments to pass to the bdist_wheel command when building
|
||||
packages.
|
||||
packages. Only relevant when legacy_setup is enabled.
|
||||
|
@ -2,3 +2,4 @@ zuul_work_dir: "{{ zuul.project.src_dir }}"
|
||||
release_python: "python"
|
||||
bdist_wheel_xargs: ""
|
||||
build_wheel: true
|
||||
legacy_setup: false
|
||||
|
@ -1,10 +1,32 @@
|
||||
- name: Build a tarball and wheel
|
||||
command: "{{ release_python }} setup.py sdist bdist_wheel {{ bdist_wheel_xargs }}"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when: build_wheel
|
||||
- name: Just build a tarball
|
||||
command: "{{ release_python }} setup.py sdist"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when: not build_wheel
|
||||
- name: Build sdist and wheel with setup.py
|
||||
when: legacy_setup
|
||||
block:
|
||||
|
||||
- name: Build a tarball and wheel
|
||||
command: "{{ release_python }} setup.py sdist bdist_wheel {{ bdist_wheel_xargs }}"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when: build_wheel
|
||||
- name: Just build a tarball
|
||||
command: "{{ release_python }} setup.py sdist"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when: not build_wheel
|
||||
|
||||
- name: Build sdist and wheel with pyproject-build
|
||||
when: not legacy_setup
|
||||
block:
|
||||
|
||||
- name: Make sure pyproject-build is available
|
||||
include_role:
|
||||
name: ensure-pyproject-build
|
||||
- name: Build a tarball and wheel
|
||||
command: "{{ ensure_pyproject_build_executable }}"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when: build_wheel
|
||||
- name: Just build a tarball
|
||||
command: "{{ ensure_pyproject_build_executable }} --sdist"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when: not build_wheel
|
||||
|
Loading…
x
Reference in New Issue
Block a user