Repository navigation
[Tech Request]: Skip full kernel CI for Python SDK-only PRs #30078
Description
Is there an existing issue for the same tech request?
- Checked existing Python SDK and CI issues.
Related: #30064 and its implementation PR #30075 activate SDK-specific CI. This issue addresses the separate kernel CI routing policy, without duplicating that SDK workflow work.
What would you like to be added?
When a PR changes only clients/python/**, run the Python SDK checks relevant to that change instead of the complete MatrixOne kernel CI suite.
Reuse the existing authoritative scope classifier in .github/ci/change-scope.cjs and its routing/result validation in .github/workflows/entrypoint.yaml. Add an explicit Python SDK scope rather than another independent path classifier or manual skip label.
SDK-only changes should retain SDK lint/static checks, offline/unit tests, dependency compatibility and package build checks provided by the SDK CI. Server-dependent SDK tests should use their explicitly configured SDK integration job; SDK-only PRs should not automatically build and test the entire kernel.
Why is this needed?
The current classifier recognizes documentation, Go UT and BVT-only scopes; all clients/python/** paths fall through to full. The full scope requires kernel UT, UT coverage, both BVT topologies and coverage merge, even when no server code changes.
A local invocation of the current classifier independently returned full for each single-file PR below:
clients/python/matrixone/client.py -> full
clients/python/tests/offline/test_client.py -> full
clients/python/pyproject.toml -> full
This is source/classifier evidence; no full CI run was launched for this issue.
Acceptance criteria
- A PR confined to
clients/python/**selects the SDK scope and runs its required SDK checks. It omits kernel build/UT/coverage/BVT and kernel coverage merge. - SDK-only plus ordinary documentation changes still select the SDK scope. SDK source, tests, dependencies and packaging changes are covered; SDK failures or missing required checks cannot produce an overall successful result. Existing required-check names resolve to completed outcomes rather than permanently pending checks.
- SDK plus kernel/shared build/CI changes retains full kernel validation and the relevant SDK checks. Classifier or routing-workflow changes themselves do not grant an exemption. Keep
CI_FORCE_FULLworking. - Preserve current fail-closed handling of incomplete file lists, unknown paths and revision drift. For renames, inspect both old and new paths so moving kernel code under
clients/python/cannot bypass kernel CI. - Add focused classifier/result-contract tests for SDK-only, SDK+docs, mixed kernel changes, renames, missing/failed SDK results and force-full. Validate workflow routing and confirm a representative SDK-only PR has SDK checks but no kernel jobs.
Validation scope
For the CI routing implementation, run the classifier tests, workflow validation and affected SDK checks. A full kernel CI rerun is not required solely to validate this SDK-only routing change; record deliberate skips clearly and retain the full route for actual kernel changes.
Activity
ci(python-sdk): activate root Actions workflow and dependency matrix (#…