Skip to content

Ship the full test suite in the sdist, tag releases; bump to 1.3.1 - #23

Merged
iskandr merged 1 commit into
masterfrom
release-hygiene
Oct 7, 2026
Merged

iskandr merged 1 commit into
masterfrom
release-hygiene

Conversation

@iskandr

@iskandr iskandr commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator

Fixes #9. Fixes #7, along with backfilled v* tags for the past releases, which I'm pushing separately. Part of #15.

  • The sdist ships the whole test suite (Tests import .common, but tests/common.py is missing in the tarball on PYPI #9). setuptools only adds tests/test*.py by default, so the tarball was missing tests/__init__.py and tests/common.py, and its tests failed on from .common import eq_. A MANIFEST.in now grafts tests/.
    • With the wheel installed, the 1.3.0 tarball's tests fail with 12 collection errors; this branch's tarball passes all 100.
    • A new sdist CI job runs the tests from the unpacked tarball, so this can't come back unnoticed.
  • deploy.sh tags releases ([request] version tags #7). It's adapted from varcode's script.
    • It deploys only from a clean master that matches the live origin, and refuses if the v<version> tag already exists.
    • It keeps each attempt's artifacts under dist/v<version>.* and runs twine check --strict.
    • After uploading, it tags v<version> and pushes only that tag.
    • --dry-run stops before the upload, and an optional version argument must match version.py.
    • I ran the full dry run in a disposable clone against a local bare origin, and checked the guards: wrong branch, HEAD ahead of origin, existing tag, version mismatch.
    • It no longer runs pip install --upgrade build twine on every deploy. Both are in the dev extras.
  • Cleanup (Unused dependencies (typechecks, coveralls), simplejson PR #10 needs rebase, redundant setup.py #15).
    • Drops the setup.py stub. The setuptools floor goes up to 64, which pyproject-only editable installs need; I checked pip install -e . in a fresh venv.
    • Drops the unused coveralls dev dependency, since CI uploads coverage with the GitHub Action.
    • typechecks stays for now, because varcode, mhctools and topiary import it without declaring it.
  • Version 1.3.0 → 1.3.1.

https://claude.ai/code/session_01JyZ1WTFWJ3EZ41QdYzKwGP

- Add MANIFEST.in so the sdist includes tests/__init__.py and
  tests/common.py; setuptools only adds tests/test*.py by default, so
  tests run from the tarball failed on `from .common import eq_` (#9).
  A new `sdist` CI job runs the tests from the unpacked sdist.
- deploy.sh, adapted from varcode's: deploys only from a clean master
  that matches live origin, refuses an existing tag, keeps each attempt's
  artifacts, runs `twine check --strict`, supports --dry-run, and tags
  v<version> and pushes the tag after upload (#7).
- Drop the setup.py shim (raise the setuptools floor to 64 for
  pyproject-only editable installs) and the unused coveralls dev
  dependency; CI uploads coverage with the GitHub Action (#15).

Claude-Session: https://claude.ai/code/session_01JyZ1WTFWJ3EZ41QdYzKwGP
@iskandr
iskandr merged commit 83dbac8 into master Oct 7, 2026
10 checks passed
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Coverage Report for CI Build 37643093271

Coverage remained the same at 91.322%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 242
Covered Lines: 221
Line Coverage: 91.32%
Coverage Strength: 0.91 hits per line

💛 - Coveralls

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.

Tests import .common, but tests/common.py is missing in the tarball on PYPI [request] version tags

1 participant