Skip to content

Add an action to build distributions on tagged releases - #518

Open
jacklovell wants to merge 3 commits into
developmentfrom
cibuildwheel
Open

Add an action to build distributions on tagged releases#518
jacklovell wants to merge 3 commits into
developmentfrom
cibuildwheel

Conversation

@jacklovell

Copy link
Copy Markdown
Member

Use the CIbuildwheel Github action to build wheels for all
currently-supported Python versions. Manylinux wheels are produced,
using the manylinux2014 image where possible (to support JET/UKAEA
computers which still run SL7), with manylinux_2_28 for Python 3.14 as
that isn't available in manylinux2014.

Only Linux wheels are built for now: MacOS (and Windows should Raysect
ever support it) are deferred. But the strategy matrix for the wheels
is written in such a way as to easily add other OS's or architectures
later as necessary.

To avoid wasting compute cycles, the workflow is configured to only
run on tagged pushes: we manually tag RC and stable releases so should
only get distributions on these versions. If necessary, tagging a
development version with an M.m.p.dev version can also trigger a
build.

Automatic uploading to PyPI is not implemented: the distribution files
should be downloaded from the gather_artifacts job's artifacts and
checked locally before uploading to PyPI. This is to reduce the risk
of uploading broken distributions: if the process proves robust and
reliable then automatic uploading to PyPI can be revisited.

Addresses one of the items in #507

Use the CIbuildwheel Github action to build wheels for all
currently-supported Python versions. Manylinux wheels are produced,
using the manylinux2014 image where possible (to support JET/UKAEA
computers which still run SL7), with manylinux_2_28 for Python 3.14 as
that isn't available in manylinux2014.

Only Linux wheels are built for now: MacOS (and Windows should Raysect
ever support it) are deferred. But the strategy matrix for the wheels
is written in such a way as to easily add other OS's or architectures
later as necessary.

To avoid wasting compute cycles, the workflow is configured to only
run on tagged pushes: we manually tag RC and stable releases so should
only get distributions on these versions. If necessary, tagging a
development version with an M.m.p.dev<n> version can also trigger a
build.

Automatic uploading to PyPI is not implemented: the distribution files
should be downloaded from the `gather_artifacts` job's artifacts and
checked locally before uploading to PyPI. This is to reduce the risk
of uploading broken distributions: if the process proves robust and
reliable then automatic uploading to PyPI can be revisited.

Addresses one of the items in #507
Tag this commit to check the Cibuildwheel action.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant