Skip to content

ENH: modernize package configuration - #1

Merged
redeboer merged 11 commits into
1.4.xfrom
ENH/pyproject
Jul 30, 2026
Merged

ENH: modernize package configuration#1
redeboer merged 11 commits into
1.4.xfrom
ENH/pyproject

Conversation

@redeboer

@redeboer redeboer commented Jul 30, 2026

Copy link
Copy Markdown
Member
  • This fork will be published as PyPI package compwa-python-constraint 1.4.0.post1.
  • Package metadata and setuptools configuration has been migrated from setup.py and setup.cfg to PEP 621 metadata in pyproject.toml.
  • The package is now built with standards-compliant .tar.gz and universal wheel artifacts (PEP 625).
  • Added a release-triggered trusted-publishing workflow used by ComPWA projects.

⚙️ Enhancements

  • Package metadata is now declared in pyproject.toml (PEP 621) with setuptools>=77 as build backend; setup.py and setup.cfg are removed.
  • The distribution name is now compwa-python-constraint, with Repository/Issues URLs pointing at ComPWA/python-constraint and Documentation still pointing at upstream.
  • License metadata uses the SPDX form (license = "BSD-2-Clause" plus license-files) instead of the deprecated License :: classifier.
  • Version is single-sourced from constraint.version.__version__ via [tool.setuptools.dynamic], and bumped to 1.4.0.post1 to mark the repackaged release.

🖱️ Developer experience

  • CI (.github/workflows/ci.yml): runs the test suite on Python 3.10–3.14 via uv run --no-project, and a separate job that runs uv build, twine check, and then installs the built wheel into an isolated environment and runs tests/ against it — so packaged content is verified, not just the working tree.
  • CD (.github/workflows/cd.yml): publishes to PyPI on release via trusted publishing (id-token: write), using the ComPWA reusable workflows.
  • FORCE_COLOR is set in CI so test and build output is coloured in the GitHub Actions log.
  • All GitHub Actions are pinned to commit SHAs, with Dependabot configured to update them yearly.
  • Tombi is configured for pyproject.toml (4-space indent, 88-column width, uv.lock excluded), and the file is reordered into conventional PEP 621 key order.
  • .gitignore now excludes agent configuration files (/.claude/, /.codex/, /.agents/, AGENTS.md, CLAUDE.md) as well as .venv/ and uv.lock.

📝 Documentation

  • README.rst is converted to Markdown as README.md, so it renders natively on GitHub and PyPI without a reST toolchain; readme in pyproject.toml points at the new file.
  • The README now opens with a "Why this fork exists" section: upstream 1.4.0 ships only a .tar.bz2 source distribution, which uv refuses since 0.12.0, so this fork republishes the same solver as a PEP 625 .tar.gz plus a py3-none-any wheel. It states explicitly that solver changes belong upstream.
  • The stale Travis/Landscape/Coveralls badges are replaced by a CI badge for this repository.

Squash commit messages

* DOC: describe why this packaging fork exists
* DX: add Tombi configuration for `pyproject.toml`
* DX: ignore virtual environments and agent configuration
* DX: pin GitHub Actions to SHA and add Dependabot
* DX: publish to PyPI on release
* DX: run tests and build distributions on GitHub Actions
* ENH: show colors in CI logs
* MAINT: convert README from reST to Markdown

@redeboer redeboer self-assigned this Jul 30, 2026
@redeboer redeboer added the ⚙️ Enhancement Improvements and optimizations of existing features label Jul 30, 2026
@redeboer redeboer added 🖱️ DX Improvements to the Developer Experience 📝 Docs Improvements or additions to documentation labels Jul 30, 2026
@redeboer
redeboer merged commit 02ae4cc into 1.4.x Jul 30, 2026
6 checks passed
@redeboer
redeboer deleted the ENH/pyproject branch July 30, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📝 Docs Improvements or additions to documentation 🖱️ DX Improvements to the Developer Experience ⚙️ Enhancement Improvements and optimizations of existing features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant