TEST-INFRA: [ci-pipeline-design] Implement matrix builds for multiple Python versions #7096

Open
opened 2026-04-10 07:40:57 +00:00 by HAL9000 · 1 comment
Owner

Background and Context

The current CI pipeline (.forgejo/workflows/ci.yml) only tests against Python 3.13. To ensure the project is robust and future-proof, it should be tested against multiple Python versions using a matrix build strategy. This aligns with the project's quality mandate and the Testing Infrastructure Improvements Epic (#5407).

Current Behavior

The CI pipeline runs all test jobs against a single Python version (3.13). No matrix strategy is defined in .forgejo/workflows/ci.yml, and noxfile.py does not enumerate multiple interpreter targets for CI.

Expected Behavior

The CI pipeline uses a matrix strategy to run tests against Python 3.11, 3.12, and 3.13 in parallel. The noxfile.py is updated to support the different Python versions, and the Docker images used in the pipeline are updated accordingly.

Acceptance Criteria

  • The .forgejo/workflows/ci.yml file uses a matrix strategy for Python versions (at minimum: 3.11, 3.12, 3.13).
  • The noxfile.py supports the different Python versions targeted by the matrix.
  • Docker images used in the CI pipeline support all matrix Python versions.
  • All CI checks continue to pass correctly across all matrix versions.
  • The new workflow is merged into the master branch.

Supporting Information

  • File: .forgejo/workflows/ci.yml, noxfile.py
  • Area: ci-pipeline-design
  • Discovered during: Test Infrastructure autonomous operation
  • Related issue: #7063 (Parallelize CI jobs for faster execution — same Epic, same area)

Metadata

  • Branch: feat/test-infra/ci-matrix-python-versions
  • Commit Message: ci(pipeline): implement matrix builds for multiple Python versions
  • Milestone: (none — backlog, see note below)
  • Parent Epic: #5407

Subtasks

  • Modify .forgejo/workflows/ci.yml to use a matrix strategy for Python versions.
  • Include at least Python 3.11, 3.12, and 3.13 in the matrix.
  • Update noxfile.py to support the different Python versions in the matrix.
  • Update Docker images used in the CI pipeline to support all matrix Python versions.
  • Validate the new workflow by running it on a test branch.
  • Update documentation if any CI usage instructions are affected.

Definition of Done

  • The CI pipeline runs tests against multiple Python versions (3.11, 3.12, 3.13) in parallel.
  • All CI checks are still running correctly across all matrix versions.
  • The new workflow is merged into the master branch.
  • All nox stages pass.
  • Coverage >= 97%.

Backlog note: This issue was discovered during autonomous operation
on milestone v3.7.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.


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

## Background and Context The current CI pipeline (`.forgejo/workflows/ci.yml`) only tests against Python 3.13. To ensure the project is robust and future-proof, it should be tested against multiple Python versions using a matrix build strategy. This aligns with the project's quality mandate and the Testing Infrastructure Improvements Epic (#5407). ## Current Behavior The CI pipeline runs all test jobs against a single Python version (3.13). No matrix strategy is defined in `.forgejo/workflows/ci.yml`, and `noxfile.py` does not enumerate multiple interpreter targets for CI. ## Expected Behavior The CI pipeline uses a matrix strategy to run tests against Python 3.11, 3.12, and 3.13 in parallel. The `noxfile.py` is updated to support the different Python versions, and the Docker images used in the pipeline are updated accordingly. ## Acceptance Criteria - The `.forgejo/workflows/ci.yml` file uses a `matrix` strategy for Python versions (at minimum: 3.11, 3.12, 3.13). - The `noxfile.py` supports the different Python versions targeted by the matrix. - Docker images used in the CI pipeline support all matrix Python versions. - All CI checks continue to pass correctly across all matrix versions. - The new workflow is merged into the master branch. ## Supporting Information - **File**: `.forgejo/workflows/ci.yml`, `noxfile.py` - **Area**: `ci-pipeline-design` - **Discovered during**: Test Infrastructure autonomous operation - **Related issue**: #7063 (Parallelize CI jobs for faster execution — same Epic, same area) ## Metadata - **Branch**: `feat/test-infra/ci-matrix-python-versions` - **Commit Message**: `ci(pipeline): implement matrix builds for multiple Python versions` - **Milestone**: *(none — backlog, see note below)* - **Parent Epic**: #5407 ## Subtasks - [ ] Modify `.forgejo/workflows/ci.yml` to use a `matrix` strategy for Python versions. - [ ] Include at least Python 3.11, 3.12, and 3.13 in the matrix. - [ ] Update `noxfile.py` to support the different Python versions in the matrix. - [ ] Update Docker images used in the CI pipeline to support all matrix Python versions. - [ ] Validate the new workflow by running it on a test branch. - [ ] Update documentation if any CI usage instructions are affected. ## Definition of Done - [ ] The CI pipeline runs tests against multiple Python versions (3.11, 3.12, 3.13) in parallel. - [ ] All CI checks are still running correctly across all matrix versions. - [ ] The new workflow is merged into the master branch. - [ ] All nox stages pass. - [ ] Coverage >= 97%. > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.7.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: new-issue-creator
Author
Owner

Verified — CI improvement: matrix builds for multiple Python versions. MoSCoW: Could-have. Priority: Low.


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

✅ **Verified** — CI improvement: matrix builds for multiple Python versions. MoSCoW: Could-have. Priority: Low. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner-pool-supervisor
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#7096
No description provided.