Summary
The current Rust/Python plugin CI mixes plugin-scoped validation with repo-level test coverage, which causes unnecessary matrix fan-out and makes workflow intent harder to follow.
This cleanup would separate repo-level test suites into their own workflows and keep plugin CI focused on plugin-specific changes.
Current behavior
The main plugin CI workflow currently handles both:
- plugin selection and per-plugin build/test execution
- repo-level test files such as:
tests/test_plugin_catalog.py
tests/test_install_built_wheel.py
This makes the workflow broader than it needs to be and contributes to CI running more work than necessary for plugin-focused PRs.
Desired behavior
- Main plugin CI should only cover plugin-scoped validation
- Repo-level test suites should run in dedicated workflows
- Plugin integration tests under
plugins/tests/<slug>/... should remain plugin-scoped
- Only truly shared repo inputs should trigger all-plugin fan-out
Proposed changes
- Narrow shared-path detection in
tools/plugin_catalog.py
- Stop treating
Cargo.lock as a shared all-plugin trigger
- Stop treating root
tests/** as shared plugin-CI input
- Map
plugins/tests/<slug>/... to the owning plugin
- Create a dedicated workflow for
tests/test_plugin_catalog.py
- Create a dedicated workflow for
tests/test_install_built_wheel.py
- Keep the main plugin CI workflow focused on:
- plugin source changes
- plugin integration tests
- true shared repo inputs such as shared crates, workflows, and tooling
Expected outcome
- Cleaner CI workflow boundaries
- Less unnecessary plugin matrix execution
- Clear separation between plugin CI and repo-level validation
- Easier maintenance of workflow path contracts and plugin selection logic
Acceptance criteria
- A change in
plugins/rust/python-package/<slug>/... runs CI only for <slug>
- A change in
plugins/tests/<slug>/... runs CI only for <slug>
Cargo.lock does not cause all-plugin fan-out by itself
tests/test_plugin_catalog.py runs in its own workflow
tests/test_install_built_wheel.py runs in its own workflow
- Main plugin CI no longer directly runs those repo-level test files
- Workflow contract tests cover the new routing behavior
Summary
The current Rust/Python plugin CI mixes plugin-scoped validation with repo-level test coverage, which causes unnecessary matrix fan-out and makes workflow intent harder to follow.
This cleanup would separate repo-level test suites into their own workflows and keep plugin CI focused on plugin-specific changes.
Current behavior
The main plugin CI workflow currently handles both:
tests/test_plugin_catalog.pytests/test_install_built_wheel.pyThis makes the workflow broader than it needs to be and contributes to CI running more work than necessary for plugin-focused PRs.
Desired behavior
plugins/tests/<slug>/...should remain plugin-scopedProposed changes
tools/plugin_catalog.pyCargo.lockas a shared all-plugin triggertests/**as shared plugin-CI inputplugins/tests/<slug>/...to the owning plugintests/test_plugin_catalog.pytests/test_install_built_wheel.pyExpected outcome
Acceptance criteria
plugins/rust/python-package/<slug>/...runs CI only for<slug>plugins/tests/<slug>/...runs CI only for<slug>Cargo.lockdoes not cause all-plugin fan-out by itselftests/test_plugin_catalog.pyruns in its own workflowtests/test_install_built_wheel.pyruns in its own workflow