Version and platform matrix
Runs the suite across runtime versions, operating systems and feature combinations you do not run locally.
Sub-techniques
3
| ID | Name | Description |
|---|---|---|
V1024.001 | Runtime matrix | Every supported language runtime version. |
V1024.002 | Feature powerset | Build and test each combination of optional features or extras. |
V1024.003 | Minimum versions | Test with the lowest declared dependency versions. |
Craft it
- Declare supported versions once and generate the matrix from that list.
- Test the oldest and newest on PRs, the full matrix on main.
- Add a minimum-versions job so lower bounds are true.
Reverse engineer it
Signs that a codebase already runs this technique, and where to read how it is configured.
- strategy.matrix in workflows, tox.ini or noxfile.py.
- cargo hack --feature-powerset or -Z minimal-versions steps.
Where the scanned repositories configure it:
.github/workflows/*.ymlin 115 repositoriesMakefilein 2 repositories
Detected by the scanner as: Version and platform matrix (breakage on a runtime version, os or feature combination you did not run locally.)
Open-source packages
3
- tox tox-dev/tox
- nox wntrblm/nox
- cargo-hack taiki-e/cargo-hack
Tools seen in scans
by repositories that run them
Procedure examples
repositories that run it, most-starred first; 40 of 116
| Repository | Tools | Runs in | Evidence |
|---|---|---|---|
| microsoft/vscode | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| ollama/ollama | ci-matrix |
ci | .github/workflows/test.yaml jobs.test.strategy.matrix |
| 30-seconds/30-seconds-of-code | ci-matrix |
ci | .github/workflows/test.yml jobs.js_tests.strategy.matrix |
| langgenius/dify | ci-matrix |
ci | .github/workflows/api-tests.yml jobs.api-unit.strategy.matrix |
| nodejs/node | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| langflow-ai/langflow | ci-matrix |
ci | .github/workflows/a11y-scan.yml jobs.a11y-scan.strategy.matrix |
| mermaid-js/mermaid | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| comfyanonymous/ComfyUI | ci-matrix |
ci | .github/workflows/test-execution.yml jobs.test.strategy.matrix |
| sveltejs/svelte | ci-matrix |
ci | .github/workflows/ci.yml jobs.Tests.strategy.matrix |
| gin-gonic/gin | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| earendil-works/pi | ci-matrix |
ci | .github/workflows/ci.yml jobs.test.strategy.matrix |
| python/cpython | ci-matrix |
ci | .github/workflows/mypy.yml jobs.mypy.strategy.matrix |
| microsoft/markitdown | ci-matrix |
ci | .github/workflows/tests.yml jobs.ocr-tests.strategy.matrix |
| microsoft/playwright | ci-matrix |
ci | .github/workflows/tests_extension.yml jobs.test_extension.strategy.matrix |
| pallets/flask | ci-matrix |
ci | .github/workflows/tests.yaml jobs.tests.strategy.matrix |
| redis/redis | ci-matrix |
ci | .github/workflows/codeql-analysis.yml jobs.analyze.strategy.matrix |
| vitejs/vite | ci-matrix |
ci | .github/workflows/ci.yml jobs.test.strategy.matrix |
| TauricResearch/TradingAgents | ci-matrix |
ci | .github/workflows/ci.yml jobs.test.strategy.matrix |
| expressjs/express | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| grafana/grafana | ci-matrix |
ci | .github/workflows/backend-unit-tests.yml jobs.grafana.strategy.matrix |
| lobehub/lobe-chat | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| google-gemini/gemini-cli | ci-matrix |
ci | .github/workflows/ci.yml jobs.test_linux.strategy.matrix |
| astral-sh/uv | ci-matrix |
ci | .github/workflows/test-windows-trampolines.yml jobs.windows-trampoline-check.... |
| alacritty/alacritty | ci-matrix |
ci | .github/workflows/ci.yml jobs.build.strategy.matrix |
| prometheus/prometheus | ci-matrix |
ci | .github/workflows/codeql-analysis.yml jobs.analyze.strategy.matrix |
| nuxt/nuxt | ci-matrix |
ci | .github/workflows/ci.yml jobs.codeql.strategy.matrix |
| warpdotdev/warp | ci-matrix |
ci | .github/workflows/ci.yml jobs.tests.strategy.matrix |
| traefik/traefik | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| remix-run/react-router | ci-matrix |
ci | .github/workflows/test-unit.yml jobs.test.strategy.matrix |
| firecrawl/firecrawl | ci-matrix |
ci | .github/workflows/test-server.yml jobs.self-host.strategy.matrix |
| appwrite/appwrite | ci-matrix |
ci | .github/workflows/codeql-analysis.yml jobs.analyze.strategy.matrix |
| aaif-goose/goose | ci-matrix |
ci | .github/workflows/ci.yml jobs.rust-build-and-test-tls.strategy.matrix |
| bmad-code-org/bmad-method | ci-matrix |
ci | .github/workflows/quality.yaml jobs.python.strategy.matrix |
| prettier/prettier | ci-matrix |
ci | .github/workflows/dev-test.yml jobs.test.strategy.matrix |
| mastodon/mastodon | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| ruvnet/ruflo | ci-matrix |
ci | .github/workflows/ci.yml jobs.test.strategy.matrix |
| serverless/serverless | ci-matrix |
ci | .github/workflows/ci-binary-installer.yml jobs.test-binary-installer.strategy... |
| prisma/prisma | ci-matrix |
ci | .github/workflows/ci.yml jobs.test-packages.strategy.matrix |
| getsentry/sentry | ci-matrix |
ci | .github/workflows/codeql.yml jobs.analyze.strategy.matrix |
| astral-sh/ruff | ci-matrix |
ci | .github/workflows/ci.yaml jobs.cargo-test-other.strategy.matrix |