ci: add contracts job to PR CI and make test-contracts local target#193
Merged
ci: add contracts job to PR CI and make test-contracts local target#193
Conversation
Add a dedicated `contracts` CI job to the pull_request workflow that runs the Python test suite and strict MkDocs build — the same steps that release validation uses. This ensures docs and Python contract regressions are caught before merge rather than only at release time. Add `make test-contracts` as the canonical local pre-merge target for the Python/docs layer, and document it in RUN.md under Pre-Merge Checks. `make test` remains Rust-only; the new target covers the complementary layer. Update overview.md to describe both CI jobs and their scopes, and extend the docs-contract test to assert that this guidance is accurate.
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
contractsCI job to thepull_requestworkflow that runsuv sync --extra dev,uv run pytest tests/ -v --mcp-cmd "biomcp serve", anduv run mkdocs build --strict— the same steps as the release validation pathmake test-contractsas the canonical local pre-merge target for the Python/docs layer;make testremains Rust-onlymake test-contractsinRUN.mdunder Pre-Merge Checks so engineers know which gate catches docs and Python contract regressionsanalysis/technical/overview.mdto describe both CI jobs and extends the docs-contract test to assert that guidance is accurateWhy
PR CI previously only ran
cargo fmt --check,cargo clippy, andcargo test. The Python test suite and strict MkDocs build only ran during release validation. This meant docs/Python regressions could merge undetected and only surface at tag time. This change closes that gap.Test plan
checkjob (Rust fmt/clippy/test) passescontractsjob (Python pytest + mkdocs strict) passesmake test-contractsruns cleanly locally