Skip to content

[Tech Request]: Skip full kernel CI for Python SDK-only PRs #30078

Closed

Description

@XuPeng-SH

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

  1. 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.
  2. 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.
  3. 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_FULL working.
  4. 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.
  5. 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

  1. added a commit that references this issue on Oct 13, 2026
    35c8dd5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions