Add CI/CD pipeline, expand test coverage to 96%, ship sample documents - #1
Merged
Conversation
CI (.github/workflows/ci.yml): gate job runs ruff lint + pytest (with a --cov-fail-under=90 gate) + package build across Python 3.11/3.12/3.13 on every PR and push. A release job on push to main computes the next patch version from git tags, tags it, and publishes a GitHub Release with generated notes (mirrors the actual-ai-categorizer tag-based model). Tests: added test_cli, test_client (fake httpx), test_lock, test_proposals, test_schema, test_extract, test_apply, test_pipeline_edges, test_ledger. Coverage 63% -> 96%. Configured ruff + coverage in pyproject and fixed all lint findings. Samples: committed samples/inbox (receipt PDF, invoice docx, drawing PNG) plus a regenerator script and a runnable samples/config.yaml; .gitignore tracks the inputs and demo config but ignores generated outputs (library/state/logs/proposals) and coverage artifacts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
test_collision_resolution_same_batch imported _make_pdf from tests.conftest, which only resolves when the repo root is on sys.path (true locally, not on CI -> ModuleNotFoundError: No module named 'tests'). Expose the helper as a `make_pdf` conftest fixture and consume it via the fixture instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
What
First real PR into
main, establishing the feature-branch → PR workflow.CI/CD (
.github/workflows/ci.yml)ruff check(lint)pytestwith a coverage gate (--cov-fail-under=90)python -m build(sdist + wheel)mainafter gates pass: computes the next patchversion from git tags, tags
vX.Y.Z, and publishes a GitHub Release withgenerated notes. Mirrors the actual-ai-categorizer tag-based model (no
version-bump commit-back, so no CI loop).
Test coverage 63% → 96%
Added
test_cli,test_client(fake httpx, no network),test_lock,test_proposals,test_schema,test_extract,test_apply,test_pipeline_edges,test_ledger. Configured ruff + coverage inpyproject.toml; fixed all lint findings.Samples
Committed
samples/inbox/(receipt PDF, invoice docx, crayon-drawing PNG), aregenerator script, and a runnable
samples/config.yaml..gitignoretracks theinputs + demo config but ignores generated outputs and coverage artifacts.
Verification
ruff check .clean;pytest→ 73 passed, 1 skipped (POSIX-only lock test), 96%.Note
On merge, the release job needs the repo's Actions setting at Read and write
permissions (Settings → Actions → General → Workflow permissions) to create the
tag/release. The first release will be
v0.1.0.🤖 Generated with Claude Code