Skip to content

Align Python CI support checks with declared 3.10–3.12 range - #2037

Open
groupthinking with Copilot wants to merge 2 commits into
mainfrom
copilot/test-python-3-10-3-12-ci
Open

groupthinking with Copilot wants to merge 2 commits into
mainfrom
copilot/test-python-3-10-3-12-ci

Conversation

Copilot AI commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Canonical issue

Handled by PR metadata.

Outcome

CI now asserts the repo’s declared Python support range end-to-end: the test matrix stays on 3.10–3.12, action pins remain immutable, and uv.lock metadata must stay aligned with pyproject.toml.

Scope

  • Included:
    • Added a workflow-governance regression test covering:
      • ci.yml Python matrix = 3.10, 3.11, 3.12
      • pyproject.toml requires-python = ">=3.10"
      • exact Python classifiers for 3.10–3.12
      • uv.lock requires-python and resolution markers consistent with that range
    • Removed the stale Programming Language :: Python :: 3.9 classifier from pyproject.toml
    • Updated one stale test comment that still referenced the old >=3.9 floor
  • Explicitly excluded:
    • No workflow logic changes
    • No action pin changes
    • No dependency or lockfile regeneration

Risk

  • Risk level: low
  • Failure mode:
    • Packaging metadata or lock metadata can drift again if support policy changes without updating the governance test
  • Rollback:
    • Revert the metadata/test changes in this PR

Verification

Exact checks run on the current head:

  • python -m pytest tests/unit/test_gh_aw_workflow_governance.py -k "ci_python_matrix_matches_declared_support_and_lock_metadata" -v --no-cov

  • python -m pytest tests/unit/test_gh_aw_workflow_governance.py tests/unit/test_dependabot_automation_workflow.py -k "ci_runs_supported_python_matrix_with_immutable_actions or ci_python_matrix_matches_declared_support_and_lock_metadata or REQUIRED_CHECKS or required_checks or merge_gate" -v --no-cov

  • python -m pytest tests/unit/test_gh_aw_workflow_governance.py -v --no-cov

  • Focused tests

  • Required CI

  • Review threads resolved

Production evidence

Not applicable. This change only tightens CI and package metadata governance.

Agent handoff

  • One canonical issue is linked

  • No competing PR implements the same issue

  • Acceptance criteria are satisfied

  • Required checks pass on the current head

  • Human decision is requested only for product, security, irreversible infrastructure, or production approval

  • Key guard added

    assert workflow["jobs"]["test"]["strategy"]["matrix"]["python-version"] == ["3.10", "3.11", "3.12"]
    assert pyproject["project"]["requires-python"] == ">=3.10"
    assert uv_lock["requires-python"] == ">=3.10"
    assert not any("3.9" in marker for marker in uv_lock["resolution-markers"])

@coderabbitai

coderabbitai Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: groupthinking/EventRelay/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: d15a04b2-422a-4f0a-b5bf-b731ca70ac68

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel

vercel Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
v0-uvai Ready Ready Preview, v0 Sep 18, 2026 9:55pm UTC

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>
Copilot AI changed the title [WIP] Test Python 3.10-3.12 in CI with immutable actions Align Python CI support checks with declared 3.10–3.12 range Sep 18, 2026
Copilot AI requested a review from groupthinking September 18, 2026 21:06
@github-actions

Copy link
Copy Markdown
Contributor

🔍 PR Validation

⚠️ PR title should follow conventional commits format

@groupthinking
groupthinking marked this pull request as ready for review September 19, 2026 03:09
Copilot AI balanced review requested due to automatic review settings September 19, 2026 03:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The new test unnecessarily hard-codes incidental uv resolution-marker partitions, causing valid lockfile updates to fail governance.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Aligns Python support metadata and CI governance around Python 3.10–3.12.

Changes:

  • Removes the obsolete Python 3.9 classifier.
  • Adds regression checks for CI, package, and lockfile metadata.
  • Updates a stale test comment.
File Description
pyproject.toml Removes Python 3.9 support classifier.
tests/​unit/​test_gh_aw_workflow_governance.py Adds support-range governance checks.
tests/​unit/​test_security_fixes.py Updates the documented Python floor.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +187 to +191
markers = uv_lock["resolution-markers"]
assert any("python_full_version < '3.11'" == marker for marker in markers)
for supported_minor in ("3.11", "3.12"):
assert any(f"python_full_version == '{supported_minor}.*'" in marker for marker in markers)
assert not any("3.9" in marker for marker in markers)
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review Summary

The full dependency review summary was too large to display here (15344KB, limit is 1024KB).

Please download the artifact named "dependency-review-summary" to view the complete report.

View full job summary

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Test Python 3.10–3.12 in CI with immutable, locked actions

3 participants