Skip to content

Add release workflow#5

Draft
tueda wants to merge 16 commits into
form-dev:masterfrom
tueda:pr/ci/release-workflow
Draft

Add release workflow#5
tueda wants to merge 16 commits into
form-dev:masterfrom
tueda:pr/ci/release-workflow

Conversation

@tueda

@tueda tueda commented Jul 2, 2026

Copy link
Copy Markdown

This PR adds a release workflow for publishing package distributions to PyPI when a version tag is pushed.

It also:

  • Sets up formatting, linting and Dependabot.
  • Fixes build issues.
  • Uses dynamic versions derived from Git metadata.

I'd like to refine the release workflow before merging this PR, so it's a draft for now.

After this PR is merged, I plan to push a v5.0.0a5 tag (or 5.0.0a5?) to publish the missing binary wheels.

tueda added 16 commits June 30, 2026 20:51
- Use curl instead of wget, as wget may not be available in the build
  environment.
- Add fallback URLs for source archives.
- Fail immediately if downloads from all configured URLs fail.
- Verify SHA-256 checksums of downloaded files.
The macOS linker does not accept the GNU ld option --gc-sections.
Use -dead_strip instead.
- Pass -pthread to FORM builds on Linux when linking against the bundled
  static FLINT library.
- Build the bundled GMP library with --with-pic on macOS x86_64 to avoid
  illegal text relocations when linking its static archive.
- Disable FLINT's use of GMP internals on macOS x86_64 to avoid
  depending on symbols that cannot be resolved at link time.
- Disable FLINT's MPFR check on Darwin x86_64, where the bundled static
  MPFR build does not expose mpfr_mulhigh_n as a linkable symbol.
Use PACKAGE_NAME_SAFE as a workaround for enscons 0.30.0. This covers
form-bin, but does not fully fix canonicalisation.
Use ~=0.30.0 for enscons and ~=0.10.2 for toml so that dependency
resolution stays within their respective minor release series.
Use setuptools-scm at build time to derive the project version from Git
metadata and declare version as dynamic in pyproject.toml.
Fix links to AUTHORS and the release notes.
@tueda
tueda force-pushed the pr/ci/release-workflow branch from ca73b92 to 8c6f631 Compare July 22, 2026 10:10
@tueda

tueda commented Jul 22, 2026

Copy link
Copy Markdown
Author

The main changes since the previous version (ca73b92) of this PR are:

  • Test release wheels with cibuildwheel (CIBW_TEST_COMMAND).
  • Check distributions before publishing to PyPI (check-dist).
  • Test the source distribution (test-sdist).
  • Drop GitHub release creation, which does not seem necessary for this repository.
  • Verify SHA-256 checksums of downloaded source archives.

TODO:

  • Include the relevant licence files in the wheels.

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