Skip to content

CI paths: Conventions lane 1/8 — extract python-sdk #854

Closed

Description

@thekevinbot

Part of #834. Phase 4, stack position 1 of 8. Blocked on #850.

What

paths: filters are workflow-scoped, not job-scoped, so per-lane triggering requires splitting conventions.yml into one file per lane. This slice extracts python-sdk.

Exact change

1. Create .github/workflows/conventions-python-sdk.yml:

name: Conventions (python-sdk)

on:
  pull_request:
    paths:
      - 'packages/python/dirsql/**'
      - 'packages/python/pyproject.toml'
      - 'packages/python/e2e-attestations/**'
      - 'packages/rust/**'
      - 'Cargo.toml'
      - 'Cargo.lock'
      - 'testing-conventions.toml'
      - '.github/workflows/conventions-python-sdk.yml'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  python-sdk:
    uses: thekevinscott/testing-conventions/.github/workflows/testing-conventions.yml@v0
    with:
      languages: '["python"]'
      source: packages/python/dirsql
      config: testing-conventions.toml
      base: ${{ github.event.pull_request.base.sha || 'origin/main' }}

2. Delete the python-sdk: job from .github/workflows/conventions.yml. Leave the other seven lanes and the file's on: / concurrency: / permissions: blocks untouched.

Two things that must not change

  • The job id stays python-sdk. Check-run names are <caller job id> / <inner job name>; neither the workflow filename nor its name: appears in them. .mergify.yml anchors on ^python-sdk /, so renaming the job breaks the merge gate. The name: Conventions (python-sdk) above is cosmetic, for the Actions UI only.
  • No push: trigger. conventions.yml is pull_request-only today; keep it that way.

Why these paths

Entry Spec row
packages/python/dirsql/** 4 — the lane's source:
packages/python/pyproject.toml 17
packages/python/e2e-attestations/** 15 — the e2e-verify gate reads them
packages/rust/** 3 — [e2e].extra_scope = ["packages/rust/src"] means any core change stales this package's attestation
Cargo.toml, Cargo.lock 11
testing-conventions.toml 13 — this lane's config:; an unknown key there fails it
self 16

Expected checks on this PR

Files touched: .github/workflows/conventions.yml, .github/workflows/conventions-python-sdk.yml.

MUST run — exactly these 8, nothing else

  • python-sdk / … — from the new file (self-path)
  • typescript-sdk / …, rust / …, rust-napi-binding / …, rust-python-binding / …, internals-checks / …, internals-distcheck / …, plugins-embeddings / … — the seven lanes still in the unconditional conventions.yml

MUST NOT run

The check count is unchanged from today (8 lanes) — the point of this PR is that one of them now comes from a filtered file. The count starts dropping at stack position 2.

Acceptance

Notes

  • Branch from main; the next lane slice stacks on this branch (base = this PR's head), since all eight edit conventions.yml and would otherwise conflict.
  • No changelog fragment, no e2e attestation.

Activity

  1. thekevinbot commented on Aug 20, 2026

    @thekevinbot
    CollaboratorAuthor

    Closing in the #934 sweep. Superseded in shape, satisfied in intent: instead of extracting this lane from conventions.yml, the #834 epic shipped per-domain consolidation (#888 plugin, #890 internals, #892 python, #893 typescript, #894 rust — which deleted conventions.yml). Every lane now triggers only on its own paths via the consolidated workflows.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions