Skip to content

ci: restore CI with lint and test checks - #6

Merged
man4ish merged 1 commit into
mainfrom
ci/restore-ci
Oct 3, 2026
Merged

man4ish merged 1 commit into
mainfrom
ci/restore-ci

Conversation

@man4ish

@man4ish man4ish commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

CI was moved to .github/workflows_disabled, so pushes and PRs to main ran no checks. Restoring the old file unchanged would fail, so this PR also fixes what it would have hit.

Why the old workflow fails

  • Install step: pip install -e . errors because setup.py imports Cython, which no build dependency declares. The runtime dependencies (pyjwt, starlette, …) were therefore never installed, and four test modules failed to import.
  • Lint step: an unconfigured, current ruff (0.16) enables rules the code was never written against (27 findings).

What this PR adds

  • .github/workflows/ci.yml: on pushes and PRs to main, installs the runtime dependencies listed in pyproject.toml, then runs ruff check . and pytest on Python 3.10–3.13. It doesn't build the Cython extensions; the tests exercise the Python sources from the repository root, as they did locally.
  • [tool.ruff] in pyproject.toml: selects E/F with a 120-character line length. The four unused imports this reports in tests/ are removed.
  • No publishing: read-only permissions. The tag-triggered GHCR job stays in workflows_disabled/.

Not changed: packaging. Making pip install work would mean declaring Cython in a [build-system] table, which compiles the extensions on every install. That is a separate decision.

Verified locally: ruff passes, and all 103 tests pass on Python 3.10, 3.11, 3.12 and 3.13. The workflow's install script was replayed on a fresh Python 3.10 environment.

🤖 Generated with Claude Code

https://claude.ai/code/session_016nxi4bp7DP1ancERNUUfzj


Generated by Claude Code

CI was moved to .github/workflows_disabled. Restored as-is it would fail:

- `pip install -e .` fails because setup.py imports Cython, which no build
  dependency declares, so the runtime dependencies (pyjwt, starlette, ...)
  were never installed and four test modules failed to import.
- An unconfigured, current ruff enables rules the code was never written
  against (27 findings).

The new .github/workflows/ci.yml installs the runtime dependencies listed
in pyproject.toml, without building the Cython extensions, and runs ruff
and pytest on Python 3.10-3.13 for pushes and pull requests to main. It
does not publish: the tag-triggered GHCR job stays in workflows_disabled.

pyproject.toml gains a [tool.ruff] block selecting E and F, and the four
unused imports it reports in tests/ are removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016nxi4bp7DP1ancERNUUfzj
@man4ish
man4ish merged commit 3541e0a into main Oct 3, 2026
4 checks passed
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.

2 participants