TEST-INFRA: [ci-pipeline-design] No Matrix Strategy for Python Versions #2239

Open
opened 2026-04-03 10:06:19 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: chore/m36-ci-python-version-matrix
  • Commit Message: chore(ci): add matrix strategy for multi-python-version testing
  • Milestone: v3.6.0
  • Parent Epic: #376

Background and Context

The CI jobs are defined for a single Python version (3.13). There is no matrix strategy to test against multiple Python versions, which is a best practice for libraries and applications that need to support a range of Python versions. Testing against only one version risks shipping code that silently breaks on other supported versions.

Current Behavior

The .forgejo/workflows/ci.yml file runs all CI jobs against Python 3.13 only. No matrix expansion is configured to cover Python 3.11 or 3.12.

Expected Behavior

The CI pipeline should run all relevant jobs against all supported Python versions (e.g., 3.11, 3.12, 3.13) using a matrix strategy, ensuring compatibility is verified across the full supported range on every push and pull request.

Acceptance Criteria

  • The .forgejo/workflows/ci.yml file uses a matrix strategy that includes Python 3.11, 3.12, and 3.13.
  • All CI jobs that are Python-version-sensitive run for each version in the matrix.
  • The CI pipeline passes for all matrix entries on a clean branch.
  • No existing CI jobs are broken or removed as a result of this change.

Supporting Information

  • Recommendation: Modify the .forgejo/workflows/ci.yml file to use a matrix strategy to test against all supported Python versions (e.g., 3.11, 3.12, 3.13).
  • Discovered during test infrastructure review (Acting on behalf of: Test Infrastructure).

Subtasks

  • Review .forgejo/workflows/ci.yml to identify all jobs that should be matrix-expanded
  • Add strategy.matrix.python-version with values ["3.11", "3.12", "3.13"]
  • Update job steps to use ${{ matrix.python-version }} where Python version is specified
  • Verify the workflow syntax is valid (e.g., via act or a test push)
  • Confirm all matrix jobs pass on a clean branch
  • Run nox (all default sessions), fix any errors
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

  • .forgejo/workflows/ci.yml contains a matrix strategy covering Python 3.11, 3.12, and 3.13
  • All matrix CI jobs pass on the feature branch
  • No existing CI jobs are broken
  • The commit uses the message: chore(ci): add matrix strategy for multi-python-version testing
  • A Pull Request has been submitted, reviewed, and merged into master
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: Test Infrastructure | Agent: ca-new-issue-creator

## Metadata - **Branch**: `chore/m36-ci-python-version-matrix` - **Commit Message**: `chore(ci): add matrix strategy for multi-python-version testing` - **Milestone**: v3.6.0 - **Parent Epic**: #376 ## Background and Context The CI jobs are defined for a single Python version (3.13). There is no matrix strategy to test against multiple Python versions, which is a best practice for libraries and applications that need to support a range of Python versions. Testing against only one version risks shipping code that silently breaks on other supported versions. ## Current Behavior The `.forgejo/workflows/ci.yml` file runs all CI jobs against Python 3.13 only. No matrix expansion is configured to cover Python 3.11 or 3.12. ## Expected Behavior The CI pipeline should run all relevant jobs against all supported Python versions (e.g., 3.11, 3.12, 3.13) using a matrix strategy, ensuring compatibility is verified across the full supported range on every push and pull request. ## Acceptance Criteria - The `.forgejo/workflows/ci.yml` file uses a `matrix` strategy that includes Python 3.11, 3.12, and 3.13. - All CI jobs that are Python-version-sensitive run for each version in the matrix. - The CI pipeline passes for all matrix entries on a clean branch. - No existing CI jobs are broken or removed as a result of this change. ## Supporting Information - **Recommendation:** Modify the `.forgejo/workflows/ci.yml` file to use a matrix strategy to test against all supported Python versions (e.g., 3.11, 3.12, 3.13). - Discovered during test infrastructure review (Acting on behalf of: Test Infrastructure). ## Subtasks - [ ] Review `.forgejo/workflows/ci.yml` to identify all jobs that should be matrix-expanded - [ ] Add `strategy.matrix.python-version` with values `["3.11", "3.12", "3.13"]` - [ ] Update job steps to use `${{ matrix.python-version }}` where Python version is specified - [ ] Verify the workflow syntax is valid (e.g., via `act` or a test push) - [ ] Confirm all matrix jobs pass on a clean branch - [ ] Run `nox` (all default sessions), fix any errors - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done - [ ] `.forgejo/workflows/ci.yml` contains a matrix strategy covering Python 3.11, 3.12, and 3.13 - [ ] All matrix CI jobs pass on the feature branch - [ ] No existing CI jobs are broken - [ ] The commit uses the message: `chore(ci): add matrix strategy for multi-python-version testing` - [ ] A Pull Request has been submitted, reviewed, and merged into `master` - All nox stages pass - Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.6.0 milestone 2026-04-03 10:11:35 +00:00
Author
Owner

Potential duplicate of #2031 and #1948.

This issue describes the same problem as:

  • #2031 ("Implement matrix test strategy for all supported Python versions", v3.8.0)
  • #1948 ("Run tests on multiple Python versions", v3.8.0)

All three issues request adding a Python version matrix to the CI pipeline. #2031 is the most comprehensive and was already triaged with MoSCoW: Could Have.

Triaging as verified but flagging the overlap. The backlog groomer should consolidate these three issues.

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium (confirmed)
  • Milestone: v3.6.0 (already assigned)
  • MoSCoW: Could Have — Multi-Python-version testing is a CI quality improvement. Overlaps with #2031 and #1948.
  • Parent Epic: #376 (confirmed correct)

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

**Potential duplicate of #2031 and #1948.** This issue describes the same problem as: - #2031 ("Implement matrix test strategy for all supported Python versions", v3.8.0) - #1948 ("Run tests on multiple Python versions", v3.8.0) All three issues request adding a Python version matrix to the CI pipeline. #2031 is the most comprehensive and was already triaged with MoSCoW: Could Have. Triaging as verified but flagging the overlap. The backlog groomer should consolidate these three issues. Issue triaged by project owner: - **State**: Verified - **Priority**: Medium (confirmed) - **Milestone**: v3.6.0 (already assigned) - **MoSCoW**: Could Have — Multi-Python-version testing is a CI quality improvement. Overlaps with #2031 and #1948. - **Parent Epic**: #376 (confirmed correct) --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

⚠️ Potential duplicate: There are many existing issues about implementing matrix testing for Python versions, including #2223, #2031, #1887, #1842, #1830, #1803, #1794, #1753, #1750, and others. Please check if this issue is a duplicate before proceeding.


Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

⚠️ **Potential duplicate**: There are many existing issues about implementing matrix testing for Python versions, including #2223, #2031, #1887, #1842, #1830, #1803, #1794, #1753, #1750, and others. Please check if this issue is a duplicate before proceeding. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
freemo removed this from the v3.6.0 milestone 2026-04-07 01:13:21 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
Reference
cleveragents/cleveragents-core#2239
No description provided.