Add release workflow - #5
Open
tueda wants to merge 19 commits into
Open
Conversation
tueda
force-pushed
the
pr/ci/release-workflow
branch
from
July 22, 2026 10:10
ca73b92 to
8c6f631
Compare
Author
|
The main changes since the previous version (ca73b92) of this PR are:
TODO:
|
- 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. Regenerate PKG-INFO when the resolved project version changes so that sdist and wheel versions remain consistent.
Fix links to AUTHORS and the release notes.
Include FORM and dependency license files under .dist-info/licenses while keeping hepware/build/licenses out of the sdist.
tueda
force-pushed
the
pr/ci/release-workflow
branch
from
August 10, 2026 04:18
8c6f631 to
b2d5de7
Compare
Author
|
Changes from 8c6f631:
|
tueda
marked this pull request as ready for review
August 10, 2026 04:19
Author
|
Temporarily closed and reopened to trigger CI. |
There was a problem hiding this comment.
Pull request overview
Adds automated, tag-driven PyPI releases alongside build reliability and development tooling improvements.
Changes:
- Builds, validates, tests, and publishes platform wheels and source distributions.
- Adds Git-derived versions, dependency checksums, portability fixes, and bundled licenses.
- Introduces linting, formatting, Dependabot, and repository configuration.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/check-bundled-licenses.py |
Validates distribution license contents. |
SConstruct |
Adds dynamic versions and license packaging. |
README.md |
Updates documentation links. |
pyproject.toml |
Configures builds, metadata, and lint tools. |
hepware/Makefile |
Improves portable, verified dependency builds. |
hepware/LICENSES_bundled.txt |
Documents bundled software licenses. |
form_bin/__main__.py |
Updates executable entry point. |
form_bin/__init__.py |
Improves typing and temporary-directory handling. |
.pre-commit-config.yaml |
Adds formatting and validation hooks. |
.gitignore |
Adds Python and build exclusions. |
.github/zizmor.yml |
Configures workflow security checks. |
.github/workflows/release.yml |
Adds distribution and PyPI release automation. |
.github/workflows/lint.yml |
Adds pre-commit CI. |
.github/dependabot.yml |
Enables automated dependency updates. |
.editorconfig |
Defines editor formatting rules. |
.bake.toml |
Configures Makefile formatting. |
Suppressed comments (1)
SConstruct:77
- This empty list is only extended with the result of the untyped SCons API, so mypy cannot infer its element type and reports
Need type annotation for "wheel_licenses". Add an explicit type so the new strict lint job can pass.
wheel_licenses = []
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a release workflow for publishing package distributions to PyPI when a version tag is pushed.
It also:
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.0a5tag(orto publish the missing binary wheels.5.0.0a5?)