TEST-INFRA: [ci-pipeline-design] Implement Matrix Builds for Multiple Python Versions #1657

Closed
opened 2026-04-02 23:24:27 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: task/m8-ci-matrix-builds-python-versions
  • Commit Message: chore(ci): implement matrix builds for multiple Python versions
  • Milestone: v3.8.0
  • Parent Epic: (to be linked — see orphan note below)

Description

The current CI pipeline is hardcoded to run tests against a single Python version (3.13). To ensure compatibility and prevent regressions, we should implement a matrix build strategy to run tests against all supported Python versions in parallel.

Area: CI/CD, Testing

⚠️ Note: Issue #1539 ("Use Matrix Strategy for Python Versions") covers overlapping scope and is currently State/In progress. This issue provides a more detailed breakdown including noxfile.py updates and per-version cache key uniqueness. The project owner should evaluate whether this issue should be closed as a duplicate of #1539 or kept as a distinct, more comprehensive task.

Subtasks

  • Modify the .forgejo/workflows/ci.yml file to use a matrix strategy for the unit_tests and integration_tests jobs.
  • Update the noxfile.py to support running tests with different Python versions (extend SUPPORTED_PYTHONS list as needed).
  • Ensure that the cache keys for the uv cache are unique for each Python version (e.g., include ${{ matrix.python-version }} in the cache key).
  • Update job names to include the Python version (e.g., unit_tests (3.13)).
  • Document the matrix build strategy in the project's development documentation.
  • Run nox (all default sessions), fix any errors.
  • Verify coverage >= 97% via nox -s coverage_report.

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • The CI pipeline runs tests against all supported Python versions in parallel.
  • The test results for each Python version are clearly visible in the CI logs.
  • The unit_tests and integration_tests jobs use a matrix strategy in .forgejo/workflows/ci.yml.
  • The uv cache keys are unique per Python version.
  • The changes are documented in the project's development documentation.
  • All nox stages pass.
  • Coverage >= 97%.
  • 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.

⚠️ Orphan Notice: No parent Epic was provided at creation time. This issue must be manually linked to an appropriate parent Epic (e.g., a CI/Test Infrastructure Epic). Please update the Parent Epic field above and create the dependency link.


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

## Metadata - **Branch**: `task/m8-ci-matrix-builds-python-versions` - **Commit Message**: `chore(ci): implement matrix builds for multiple Python versions` - **Milestone**: v3.8.0 - **Parent Epic**: *(to be linked — see orphan note below)* ## Description The current CI pipeline is hardcoded to run tests against a single Python version (3.13). To ensure compatibility and prevent regressions, we should implement a matrix build strategy to run tests against all supported Python versions in parallel. **Area**: CI/CD, Testing > ⚠️ **Note**: Issue #1539 ("Use Matrix Strategy for Python Versions") covers overlapping scope and is currently `State/In progress`. This issue provides a more detailed breakdown including `noxfile.py` updates and per-version cache key uniqueness. The project owner should evaluate whether this issue should be closed as a duplicate of #1539 or kept as a distinct, more comprehensive task. ## Subtasks - [ ] Modify the `.forgejo/workflows/ci.yml` file to use a matrix strategy for the `unit_tests` and `integration_tests` jobs. - [ ] Update the `noxfile.py` to support running tests with different Python versions (extend `SUPPORTED_PYTHONS` list as needed). - [ ] Ensure that the cache keys for the `uv` cache are unique for each Python version (e.g., include `${{ matrix.python-version }}` in the cache key). - [ ] Update job names to include the Python version (e.g., `unit_tests (3.13)`). - [ ] Document the matrix build strategy in the project's development documentation. - [ ] Run `nox` (all default sessions), fix any errors. - [ ] Verify coverage >= 97% via `nox -s coverage_report`. ## Definition of Done This issue is complete when: - [ ] All subtasks above are completed and checked off. - [ ] The CI pipeline runs tests against all supported Python versions in parallel. - [ ] The test results for each Python version are clearly visible in the CI logs. - [ ] The `unit_tests` and `integration_tests` jobs use a matrix strategy in `.forgejo/workflows/ci.yml`. - [ ] The `uv` cache keys are unique per Python version. - [ ] The changes are documented in the project's development documentation. - [ ] All nox stages pass. - [ ] Coverage >= 97%. - [ ] 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. --- > ⚠️ **Orphan Notice**: No parent Epic was provided at creation time. This issue must be manually linked to an appropriate parent Epic (e.g., a CI/Test Infrastructure Epic). Please update the Parent Epic field above and create the dependency link. --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.8.0 milestone 2026-04-02 23:24:39 +00:00
Author
Owner

⚠️ Orphan Issue — Manual Linking Required

This issue was created without a parent Epic because no dedicated CI/Test-Infrastructure Epic currently exists in the cleveragents/cleveragents-core repository.

Action required by project owner:

  1. Create (or identify) a parent Epic for the ci-pipeline-design workstream.
  2. Link this issue as a child of that Epic using Forgejo's dependency system:
    • This issue (#1657) should block the parent Epic (child blocks parent — the Epic cannot be complete until this issue is done).
    • Use: POST /api/v1/repos/cleveragents/cleveragents-core/issues/1657/blocks with {"dependency_id": <PARENT_EPIC_NUMBER>}
  3. Update the ## Metadata section of this issue body to reflect the correct **Parent Epic**: #<number>.

Related issues in the same workstream:

  • #1539 — "Use Matrix Strategy for Python Versions" (State/In progress) — overlapping scope, please evaluate for duplication.
  • #1540 — "Introduce Reusable Workflows to Reduce Duplication" (State/In Review)
  • #1604 — "Reduce redundant setup steps in CI jobs" (State/Verified)

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

⚠️ **Orphan Issue — Manual Linking Required** This issue was created without a parent Epic because no dedicated CI/Test-Infrastructure Epic currently exists in the `cleveragents/cleveragents-core` repository. **Action required by project owner:** 1. Create (or identify) a parent Epic for the `ci-pipeline-design` workstream. 2. Link this issue as a child of that Epic using Forgejo's dependency system: - This issue (#1657) should **block** the parent Epic (child blocks parent — the Epic cannot be complete until this issue is done). - Use: `POST /api/v1/repos/cleveragents/cleveragents-core/issues/1657/blocks` with `{"dependency_id": <PARENT_EPIC_NUMBER>}` 3. Update the `## Metadata` section of this issue body to reflect the correct `**Parent Epic**: #<number>`. **Related issues in the same workstream:** - #1539 — "Use Matrix Strategy for Python Versions" (`State/In progress`) — **overlapping scope**, please evaluate for duplication. - #1540 — "Introduce Reusable Workflows to Reduce Duplication" (`State/In Review`) - #1604 — "Reduce redundant setup steps in CI jobs" (`State/Verified`) --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
Author
Owner

Closing as duplicate of #1539 (matrix strategy for Python versions). This CI improvement is already tracked.


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

Closing as duplicate of #1539 (matrix strategy for Python versions). This CI improvement is already tracked. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo 2026-04-02 23:31:15 +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.

Dependencies

No dependencies set.

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