TEST-INFRA: [ci-pipeline-design] Implement matrix builds for OS and Python version coverage #1646

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

Metadata

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

Description

The CI pipeline currently runs tests against a single operating system (Linux) and a single Python version. To ensure the project is portable and compatible across all supported environments, the CI workflow should be extended with a full matrix build strategy covering:

  • Python versions: All versions listed in SUPPORTED_PYTHONS in noxfile.py (currently ["3.13"], but designed to grow).
  • Operating systems: At minimum ubuntu-latest; optionally macos-latest and windows-latest as the project matures.

This issue supersedes and extends the narrower scope of #1539 (Python-version-only matrix), which is currently in progress. The two may be merged or sequenced — this issue captures the full intended end-state.

Area: CI/CD, Testing Infrastructure

Subtasks

  • Audit noxfile.py to confirm the authoritative SUPPORTED_PYTHONS list and any OS-specific session guards.
  • Update ci.yml unit_tests and integration_tests jobs to use a strategy.matrix over python-version values derived from SUPPORTED_PYTHONS.
  • Add an OS dimension to the matrix (os: [ubuntu-latest]; extend to macos-latest / windows-latest once feasible).
  • Update job names to include both OS and Python version (e.g., unit_tests (ubuntu-latest, 3.13)).
  • Ensure uv cache keys incorporate the matrix python-version and os values to avoid cross-slot cache pollution.
  • Verify that nox -e unit_tests and nox -e integration_tests pass cleanly on all matrix combinations.
  • Update CI documentation / README badge to reflect multi-version/OS status.
  • Confirm coverage reporting aggregates correctly across matrix legs (or designates a single canonical leg for the coverage gate).

Definition of Done

  • The CI pipeline runs unit_tests and integration_tests jobs for every combination in the matrix.
  • Each matrix leg is independently named and identifiable in the Forgejo Actions UI.
  • Cache keys are unique per matrix combination — no cross-contamination between Python versions or OSes.
  • Coverage gate (>= 97%) is enforced on at least one canonical matrix leg.
  • No matrix leg is silently skipped or allowed to fail without surfacing a CI failure.
  • All nox stages pass.
  • Coverage >= 97%.

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

## Metadata - **Branch**: `task/ci-matrix-builds-os-python` - **Commit Message**: `chore(ci): implement matrix builds for OS and Python version coverage` - **Milestone**: v3.8.0 - **Parent Epic**: *(to be linked — see orphan note below)* ## Description The CI pipeline currently runs tests against a single operating system (Linux) and a single Python version. To ensure the project is portable and compatible across all supported environments, the CI workflow should be extended with a full matrix build strategy covering: - **Python versions**: All versions listed in `SUPPORTED_PYTHONS` in `noxfile.py` (currently `["3.13"]`, but designed to grow). - **Operating systems**: At minimum `ubuntu-latest`; optionally `macos-latest` and `windows-latest` as the project matures. This issue supersedes and extends the narrower scope of #1539 (Python-version-only matrix), which is currently in progress. The two may be merged or sequenced — this issue captures the full intended end-state. **Area**: CI/CD, Testing Infrastructure ## Subtasks - [ ] Audit `noxfile.py` to confirm the authoritative `SUPPORTED_PYTHONS` list and any OS-specific session guards. - [ ] Update `ci.yml` `unit_tests` and `integration_tests` jobs to use a `strategy.matrix` over `python-version` values derived from `SUPPORTED_PYTHONS`. - [ ] Add an OS dimension to the matrix (`os: [ubuntu-latest]`; extend to `macos-latest` / `windows-latest` once feasible). - [ ] Update job names to include both OS and Python version (e.g., `unit_tests (ubuntu-latest, 3.13)`). - [ ] Ensure `uv` cache keys incorporate the matrix `python-version` and `os` values to avoid cross-slot cache pollution. - [ ] Verify that `nox -e unit_tests` and `nox -e integration_tests` pass cleanly on all matrix combinations. - [ ] Update CI documentation / README badge to reflect multi-version/OS status. - [ ] Confirm coverage reporting aggregates correctly across matrix legs (or designates a single canonical leg for the coverage gate). ## Definition of Done - [ ] The CI pipeline runs `unit_tests` and `integration_tests` jobs for every combination in the matrix. - [ ] Each matrix leg is independently named and identifiable in the Forgejo Actions UI. - [ ] Cache keys are unique per matrix combination — no cross-contamination between Python versions or OSes. - [ ] Coverage gate (`>= 97%`) is enforced on at least one canonical matrix leg. - [ ] No matrix leg is silently skipped or allowed to fail without surfacing a CI failure. - [ ] All nox stages pass. - [ ] Coverage >= 97%. --- **Automated by CleverAgents Bot** Supervisor: Unknown | Agent: ca-new-issue-creator
freemo added this to the v3.8.0 milestone 2026-04-02 23:23:37 +00:00
Author
Owner

⚠️ Orphan Issue — Manual Linking Required

This issue was created without a parent Epic because no open Type/Epic issues were found in the repository. Per CONTRIBUTING.md, orphan issues are not permitted — every Issue must be linked to a parent Epic.

Action required: A project maintainer should either:

  1. Identify or create a CI/CD Infrastructure Epic and link this issue to it as a child (this issue blocks the parent Epic), or
  2. Confirm that the milestone (v3.8.0) is the intended top-level grouping and waive the Epic requirement for this issue.

Related issues in the same cluster: #1535, #1536, #1537, #1538, #1539, #1540 — all [ci-pipeline-design] tasks that would naturally belong under the same parent Epic.


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

⚠️ **Orphan Issue — Manual Linking Required** This issue was created without a parent Epic because no open `Type/Epic` issues were found in the repository. Per `CONTRIBUTING.md`, orphan issues are not permitted — every Issue must be linked to a parent Epic. **Action required**: A project maintainer should either: 1. Identify or create a CI/CD Infrastructure Epic and link this issue to it as a child (this issue **blocks** the parent Epic), or 2. Confirm that the milestone (`v3.8.0`) is the intended top-level grouping and waive the Epic requirement for this issue. **Related issues in the same cluster**: #1535, #1536, #1537, #1538, #1539, #1540 — all `[ci-pipeline-design]` tasks that would naturally belong under the same parent Epic. --- **Automated by CleverAgents Bot** Supervisor: Unknown | 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:17 +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#1646
No description provided.