Skip to content

ci: enforce PR validation and 90 percent SDK coverage - #19

Merged
LihaoLiuXs merged 2 commits into
mainfrom
codex/pr-validation-90-coverage
Oct 23, 2026
Merged

LihaoLiuXs merged 2 commits into
mainfrom
codex/pr-validation-90-coverage

Conversation

@LihaoLiuXs

@LihaoLiuXs LihaoLiuXs commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add Python 3.10–3.14 unit/replay CI with a stable, fail-closed test aggregate.
  • Enforce 90% total SDK line coverage on Python 3.12. Measure all SDK source under packages/, including unimported namespace modules, without adding coverage exclusions.
  • Configure Codecov project and patch targets at 90%, with optional OIDC uploads isolated from test execution. Codecov access/reporting still needs verification; the local coverage gate does not depend on the reporting service.
  • Add a tested, read-only conventional PR-title workflow and PR template.
  • Fix test tooling's Python 3.10 TOML parser compatibility and document the contribution/release-PR process.
  • Do not change SDK behavior, release workflows, PyPI publisher identities, or production approval prompts.

Repository settings applied separately with owner approval

  • Activate the existing ruleset for main; require one approval, stale-review dismissal, resolved conversations, up-to-date CI/docs/security/CLA checks, linear history, blocked deletion/force-push, and no bypass actors.
  • Squash-only merge settings; PR title as subject and blank body.
  • Read-only default Actions token; retain explicit Release Please permissions and permission to create its PRs.
  • Added conventional-title to required checks after this PR produced the check successfully.
  • Code-owner approval is not enabled while CODEOWNERS names only one maintainer; this avoids blocking that maintainer's own PRs. Normal peer-review approval remains required.

Validation

  • Fresh Python 3.12 full credential-free suite, explicit --record-mode=none: 4,130 passed, 23 skipped, 36 existing warnings.
  • 97.74% SDK line coverage, 7,884/8,066 statements covered. All 73 SDK Python source files appear in the report. The 90% gate passes.
  • Title validator: 12 behavioral cases, including invalid/multiline subjects and literal shell metacharacters, passed after verifying failure before implementation.
  • Maintainer-script suite: 23 passed on Python 3.10 and 3.13; Python 3.10 reports upstream support/deprecation warnings.
  • Black/isort checks, frozen lock consistency, all 21 version declarations, strict MkDocs build and git diff --check: passed.
  • Initial exploratory run without explicit replay mode had 10 failures; replay fixtures depend on the mode option. The exact proposed explicit-replay command passes. No cassette edits or production-code changes were used to address it.
  • GitHub Ubuntu CI independently confirmed 4,130 passed, 23 skipped and 97.74% coverage on Python 3.12. All five runtime jobs (3.10–3.14) and the stable test gate now pass. The first Python 3.11 run encountered an intermittent SQS replay setup error referencing the previous test's cassette; one manually requested failed-job rerun passed without code changes. The underlying intermittent failure is not claimed fixed. No cassette changes, skips, or automatic retries were added to hide it.
  • Documentation, conventional-title, formatting/version consistency, SAST, credential scanning and CLA checks passed.
  • Codecov upload was attempted, but its service rejected it with Repository not found. Repository onboarding/access must be completed in Codecov before external project/patch reports work. This non-blocking upload does not replace the required 90% local CI coverage gate.
  • No live-cloud tests or publishing performed.

Rollout

Review and merge through the protected PR process; no direct-main push or bypass is requested. Verify checks on generated release PRs and approve automation workflow runs when GitHub requests it. Existing dependency-update PRs with non-conventional titles need retitling before merge.

@LihaoLiuXs
LihaoLiuXs merged commit 550ba3b into main Oct 23, 2026
22 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant