Skip to content

Extend CI: package build, docs build, PyPy, Windows/macOS, lint CLI - #100

Merged
stefankoegl merged 1 commit into
masterfrom
claude/tender-gates-dj4g2w
Oct 26, 2026
Merged

stefankoegl merged 1 commit into
masterfrom
claude/tender-gates-dj4g2w

Conversation

@stefankoegl

Copy link
Copy Markdown
Owner

Adds CI checks for things the package claims or depends on but CI never tested.

Changes

  • Package build check: a new build job runs python -m build and twine check --strict on every push and PR. Until now this only ran in publish.yml at release time, so a broken setup.py metadata regex wouldn't show up until you tagged a release.
  • Docs build: a new docs job runs sphinx-build -W --keep-going, so Sphinx warnings fail the build. Adds doc/requirements.txt and points .readthedocs.yaml at it.
  • PyPy: pypy3.10 and pypy3.11 are added to the test matrix, to back the Implementation :: PyPy classifier.
  • Windows and macOS: both run the tests on Python 3.13, to back Operating System :: OS Independent. The test step now calls coverage directly instead of make coverage, since make isn't reliably installed on Windows runners. The Coveralls flag names now include the OS.
  • Lint the CLI: flake8 now checks bin/jsonpointer, which it skipped before because the file has no .py extension.

Verification

Run locally on Linux with Python 3.13: flake8 passes, including bin/jsonpointer; all 74 tests pass with 97% coverage; the docs build with no warnings; twine check --strict passes on both the sdist and the wheel.

The PyPy, Windows and macOS jobs haven't been run yet. This PR's CI is their first run. The CLI tests that override the locale (LC_ALL=C, PYTHONUTF8=0) are the most likely to behave differently on Windows.


Generated by Claude Code

- Build sdist/wheel and run `twine check --strict` on every push/PR,
  not only at release time.
- Build the Sphinx docs with warnings as errors; add doc/requirements.txt
  and point .readthedocs.yaml at it.
- Test on PyPy 3.10/3.11, matching the PyPy classifier.
- Test on Windows and macOS (Python 3.13), matching "OS Independent".
  The test step now calls coverage directly instead of `make`, so it
  works on Windows runners.
- Include bin/jsonpointer in flake8 runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ABG5y5dMYWf6N2dxHZGBdd
@stefankoegl
stefankoegl merged commit 23af4be into master Oct 26, 2026
22 checks passed
@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 97.714%. remained the same — claude/tender-gates-dj4g2w into master

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.

3 participants