fix(ci): install workspace packages as editable + fix lint#12
Conversation
- ci.yml: use 'uv sync --all-packages' in test jobs so workspace members (coordinode, langchain-coordinode, llama-index-graph-stores-coordinode) are installed as proper editable packages via .pth files. Without this, uv sync only installs dev dependencies and leaves workspace packages uninstalled, causing ModuleNotFoundError in tests. - ruff.toml: update proto stubs exclude path to coordinode/coordinode/_proto/ (moved in #10); exclude _version.py (generated by hatch-vcs, unformatted) - tests/unit/test_types.py: fix I001 — remove blank line between same-group imports (pytest + coordinode._types are both third-party) - Makefile: clean target also removes coordinode/coordinode/_proto/google (google.api stubs generated alongside coordinode stubs) - Remove coordinode/_proto/__init__.py that was mistakenly committed to git (generated file, should only exist in gitignored coordinode/_proto/)
|
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)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe changes adjust build configuration, CI/CD workflows, and linting rules following a package structure reorganization where the coordinode package was moved into a Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Makefile`:
- Line 57: The Makefile currently hard-codes subpaths in the cleanup step (the
rm -rf $(PROTO_OUT)/coordinode $(PROTO_OUT)/google line) which can leave stale
generated files; change that target to remove all contents under the
$(PROTO_OUT) generated output directory instead of listing namespaces
explicitly—use a safe deletion that removes every child entry of $(PROTO_OUT)
but not the directory itself (for example, replace the hard-coded rm with a
deletion that operates on all entries under $(PROTO_OUT), or use a find-based
deletion with mindepth 1) so future proto namespaces are automatically cleaned.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 782b5b0f-6e3e-4ce6-97d7-e3a17213ac19
📒 Files selected for processing (5)
.github/workflows/ci.ymlMakefilecoordinode/_proto/__init__.pyruff.tomltests/unit/test_types.py
💤 Files with no reviewable changes (2)
- tests/unit/test_types.py
- coordinode/_proto/init.py
There was a problem hiding this comment.
Pull request overview
Updates CI + local tooling to correctly work with the post-#10 workspace/package layout, ensuring the coordinode package is installed as an editable workspace member so tests can import it reliably.
Changes:
- CI: run
uv sync --all-packagesin test jobs so workspace members are installed as editable packages. - Tooling/lint fixes: update Ruff excludes for moved proto stubs; resolve a minor import-formatting issue in unit tests.
- Cleanup: expand
make cleanto remove generatedgoogleprotos; delete a mistakenly committed generated_proto/__init__.py.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/test_types.py | Import formatting tweak to satisfy Ruff import rules. |
| ruff.toml | Update excluded generated paths after package restructure. |
| Makefile | Clean target now removes additional generated proto output (google). |
| coordinode/_proto/init.py | Removes mistakenly committed generated stub file. |
| .github/workflows/ci.yml | Installs workspace packages as editable in CI test jobs via --all-packages. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@coderabbitai re-review |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@coderabbitai re-review |
|
✅ Actions performedReview triggered.
|
…rt grouping Without explicit known-first-party, ruff classifies coordinode as third-party when the package is not installed as editable (e.g. plain `uv sync` in the lint job). This caused inconsistent blank-line requirements across test files. Setting known-first-party ensures consistent import grouping regardless of the install state.
|



Summary
uv syncin CI test jobs: add--all-packagesso workspace members are installed as editable packagesruff.toml: update proto stubs exclude path after package restructure in fix(coordinode): move package into coordinode/ subdirectory for correct wheel build #10tests/unit/test_types.py: I001 import sorting (blank line between same-group imports)Makefileclean target: also removescoordinode/_proto/googlecoordinode/_proto/__init__.pythat was mistakenly committed (generated file)Root Cause
After #10 moved Python source files into
coordinode/coordinode/subdirectory,uv syncwithout--all-packagesno longer installs thecoordinodeworkspace package as an editable. Previously, tests worked accidentally becausecoordinode/__init__.pyexisted at the workspace member root and Python's CWD resolution treated it as thecoordinodepackage. With the new structure there's no__init__.pyat the root, so Python sees a namespace package andCoordinodeClientis not found.uv sync --all-packagescreates a_coordinode.pthfile pointing to the workspace member directory, which allows Python to correctly resolvecoordinode→coordinode/coordinode/__init__.py.Verification
Locally: lint passes, 18/18 unit tests pass.
Closes #11