Conversation
publish.yml only runs on push to main, so PRs had no test/lint checks. Add a CI workflow that runs on pull_request (and main): ruff lint, a pytest matrix over Python 3.10-3.13 with framework extras installed (so adapter handler tests run, not skip), and a bare .[dev] job that locks the dependency-free contract. SHA-pinned, persist-credentials false, timeouts — matching the org standard.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds ChangesCI Workflow
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@CodeRabbit review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Pull request overview
Adds a GitHub Actions CI workflow so linting and tests run on pull requests (and on pushes to main), aligning CI coverage with the package’s supported Python versions and optional extras strategy.
Changes:
- Introduces a new
CIworkflow triggered onpull_requestandpushtomain. - Adds
lintjob runningruff check .(Python 3.13). - Adds
testmatrix (Python 3.10–3.13) with.[dev,langchain]installed, plus atest-barejob that runs tests with only.[dev].
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The repo had no PR CI —
publish.ymlonly runs on push tomain, so tests/lint never ran on pull requests. The only PR checks were the merge-conflict check and CodeRabbit. This adds real status checks.What runs (on
pull_requestand push tomain)lint—ruff check .(Python 3.13).test—pytestmatrix over Python 3.10–3.13 (therequires-pythonrange), with.[dev,langchain]installed so the adapter handler tests actually run instead of skipping.fail-fast: false.test-bare—pytestwith only.[dev](no framework extras). Locks the dependency-free contract: the package + suite must work with no extra installed (handler tests skip cleanly, no import errors). This is exactly the class of bug just caught on PR feat: add LangChain budget-guard integration #3, and it's whatpublish.ymlrelies on before releasing.Hardening (matches the org standard)
publish.yml).persist-credentials: false,permissions: contents: read,timeout-minutes, andconcurrencywithcancel-in-progressto drop superseded runs.Follow-up (needs a repo admin — can't be done from a workflow file)
To make these required (block merge on red), enable branch protection on
main: Settings → Branches → add a rule requiring thelint,test, andtest-barechecks to pass. Until then they run and show status but don't gate merges.Summary by CodeRabbit