TEST-INFRA: [ci-pipeline-design] Use a matrix strategy to test against multiple Python versions #1830

Open
opened 2026-04-02 23:56:06 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: task/ci-pipeline-design-matrix-python-versions
  • Commit Message: ci(pipeline): add matrix strategy to test against multiple Python versions
  • Milestone: v3.7.0
  • Parent Epic: #1678

Background and Context

The current CI pipeline in .forgejo/workflows/ci.yml only runs tests against a single Python version (3.13). This is risky as it doesn't guarantee that the code will work with other Python versions. Testing against multiple Python versions (e.g., 3.11, 3.12, 3.13) is a standard best practice that helps catch version-specific regressions early.

Expected Behavior

The CI pipeline should use a matrix strategy to run all test jobs against multiple Python versions (e.g., 3.11, 3.12, 3.13), ensuring compatibility across the supported range.

Acceptance Criteria

  • The ci.yml file uses a strategy.matrix block to define the Python versions to test against.
  • All relevant test jobs (unit_tests, integration_tests, etc.) run for each Python version in the matrix.
  • The pipeline passes successfully for all specified Python versions.

Subtasks

  • Modify .forgejo/workflows/ci.yml to use a matrix strategy for python-version (e.g., 3.11, 3.12, 3.13).
  • Ensure all relevant CI jobs are parameterised by the matrix Python version.
  • Ensure that the pipeline runs successfully for all Python versions in the matrix.
  • Update features/ci_workflow_validation.feature to assert the matrix strategy is present.
  • Tests (Behave): Add/update scenarios for CI workflow matrix validation.
  • Verify coverage >= 97% via nox -s coverage_report.
  • Run nox (all default sessions), fix any errors.

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage >= 97%.

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

## Metadata - **Branch**: `task/ci-pipeline-design-matrix-python-versions` - **Commit Message**: `ci(pipeline): add matrix strategy to test against multiple Python versions` - **Milestone**: v3.7.0 - **Parent Epic**: #1678 ## Background and Context The current CI pipeline in `.forgejo/workflows/ci.yml` only runs tests against a single Python version (3.13). This is risky as it doesn't guarantee that the code will work with other Python versions. Testing against multiple Python versions (e.g., 3.11, 3.12, 3.13) is a standard best practice that helps catch version-specific regressions early. ## Expected Behavior The CI pipeline should use a matrix strategy to run all test jobs against multiple Python versions (e.g., 3.11, 3.12, 3.13), ensuring compatibility across the supported range. ## Acceptance Criteria - The `ci.yml` file uses a `strategy.matrix` block to define the Python versions to test against. - All relevant test jobs (unit_tests, integration_tests, etc.) run for each Python version in the matrix. - The pipeline passes successfully for all specified Python versions. ## Subtasks - [ ] Modify `.forgejo/workflows/ci.yml` to use a matrix strategy for `python-version` (e.g., 3.11, 3.12, 3.13). - [ ] Ensure all relevant CI jobs are parameterised by the matrix Python version. - [ ] Ensure that the pipeline runs successfully for all Python versions in the matrix. - [ ] Update `features/ci_workflow_validation.feature` to assert the matrix strategy is present. - [ ] Tests (Behave): Add/update scenarios for CI workflow matrix validation. - [ ] Verify coverage >= 97% via `nox -s coverage_report`. - [ ] Run `nox` (all default sessions), fix any errors. ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - All nox stages pass. - Coverage >= 97%. --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-02 23:56:15 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • MoSCoW: MoSCoW/Could Have — CI/test infrastructure improvement.

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

Issue triaged by project owner: - **State**: Verified - **MoSCoW**: MoSCoW/Could Have — CI/test infrastructure improvement. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • MoSCoW: MoSCoW/Could Have — CI/test infrastructure improvement.

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

Issue triaged by project owner: - **State**: Verified - **MoSCoW**: MoSCoW/Could Have — CI/test infrastructure improvement. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
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.

Reference
cleveragents/cleveragents-core#1830
No description provided.