Add CI, and gate the PyPI publish behind the tests#9
Merged
Conversation
The 0.1.10 merge added the timeout and its exception but left the docs describing the old exception hierarchy, which no longer matches what the library raises. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The repository had no CI at all. publish-to-pypi.yml was the only workflow, so pull requests merged with nothing verifying them — PR #8 reported zero checks. Worse, that publish workflow never ran the tests: its steps were checkout, build, release, upload. A version tag went straight to PyPI regardless of whether the code worked, and a bad PyPI release cannot be undone — it can only be yanked, and the version number is burned forever. Adds ci.yml: unit tests on push and pull request across the Python versions pyproject.toml claims to support (3.8 floor, 3.13 as used by the release build), plus a build job that runs twine check so a broken package is caught before a tag can immortalize it. Adds a test step to publish-to-pypi.yml before the build, so a tag physically cannot ship code that fails its own suite, and a twine check before the release is created. Integration tests (live API key) and django tests are excluded from both gates; neither belongs in a pull-request check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012RTKj5gZTg1zWmZM8TL2yq
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.
Summary
This repository had no CI at all.
publish-to-pypi.ymlwas the only workflow, so pull requests merged with nothing verifying them — #8 reported zero checks.Worse, that publish workflow never ran the tests. Its steps were: checkout → build → release → upload. A version tag went straight to PyPI regardless of whether the code worked — and a bad PyPI release cannot be undone. It can only be yanked, and the version number is burned forever.
Changes
ci.yml(new) — on push and pull request:pyproject.tomlclaims to support (requires-python = ">=3.8"), plus 3.13 as used by the release buildpython -m build+twine check, so a broken package is caught before a tag can immortalize itpublish-to-pypi.yml— adds a test step before the build, so a tag physically cannot ship code that fails its own suite, and atwine checkbefore the GitHub release is created.Integration tests (need a live API key) and django tests are excluded from both gates — neither belongs in a PR check.
Note
This PR is its own first customer: the checks below are the CI it adds.
🤖 Generated with Claude Code