Problem
PRs that touch one managed plugin plus the root Cargo.lock currently expand the Rust Python package CI matrix to every managed plugin. This makes a plugin-scoped dependency or version update much more expensive than intended.
Expected behavior
When Cargo.lock changes together with one or more plugin-specific paths, CI should select only those changed plugins. A lockfile-only or shared workspace change can still conservatively select all plugins.
Evidence
PR #78 changes only rate_limiter paths plus Cargo.lock, but CI selected all managed plugins across all OS matrix entries.
Scope
Update tools/plugin_catalog.py CI selection logic and add regression coverage for the lockfile-plus-plugin case.
Problem
PRs that touch one managed plugin plus the root
Cargo.lockcurrently expand the Rust Python package CI matrix to every managed plugin. This makes a plugin-scoped dependency or version update much more expensive than intended.Expected behavior
When
Cargo.lockchanges together with one or more plugin-specific paths, CI should select only those changed plugins. A lockfile-only or shared workspace change can still conservatively select all plugins.Evidence
PR #78 changes only
rate_limiterpaths plusCargo.lock, but CI selected all managed plugins across all OS matrix entries.Scope
Update
tools/plugin_catalog.pyCI selection logic and add regression coverage for the lockfile-plus-plugin case.