Skip to content

Stability and Deprecation Policy

github-actions[bot] edited this page Nov 12, 2026 · 1 revision

Stability and Deprecation Policy

Index · Product Roadmap · Adoption Blockers - 2026-11-12

What you can build on, and how much warning you get before it changes. QASight follows Semantic Versioning from 1.0.0 on.

What is stable

These don't break within a major version (1.x):

Surface Where it's described
CLI commands, their flags and exit codes (0 to 4) Command Reference, Troubleshooting and Error Codes
qasight.yaml keys and their meaning; the JSON Schema in schema/ Command Reference
HTTP API under /api/v1/ (routes, request and response fields) the server's /docs page (OpenAPI)
qasight ingest formats and --server uploads Team Server
TESTO_* environment variables and DATABASE_URL Team Server
GitHub Action inputs (arieleven/qasight@v1) and the GitLab template CI-CD Pipeline Setup
Docker image tags 1, 1.x, 1.x.y Publishing Docker Images
The run-history database: an upgrade migrates it, nothing is lost Team Server § Backups

Adding is not breaking: new commands, flags, keys, routes, response fields and enum values can come in any minor release, so read API responses tolerantly.

Not covered: Python imports other than the plugin API (qasight.plugins), the web UI's layout and URLs, log and console wording, --ci NDJSON event fields not listed in the Command Reference, and anything marked experimental in its docs.

How things are removed

  1. Deprecated in a minor release. The old spelling keeps working, prints a warning that names the replacement (CLI and config), and the API marks the route deprecated in OpenAPI. The CHANGELOG lists it under Deprecated.
  2. Kept for at least six months and two minor releases, whichever is longer.
  3. Removed only in the next major release (2.0), listed under Removed with the migration step.

The 2026-11 rename shows the pattern: testo, testosterone.yaml, testo_core imports and TESTO_* variables all still work in 1.x (Rename to QASight).

Releases and support

  • Minor releases (1.x) bring features; patch releases (1.x.y) only fixes. Every release has a CHANGELOG entry and runs the release gate.
  • Security fixes go into the latest 1.x release (SECURITY.md).
  • Upgrading is pip install -U qasight or a new image tag; the database migrates on start. Take a qasight backup first on a team server.
  • Pin what you depend on. qasight==1.6.* in CI, or image tag 1.6, gets fixes without new features.

Generated from docs/Processes & Guides/Stability and Deprecation Policy.md. Edit it there; changes made in the wiki are overwritten.

Home

Architecture

CLI Commands

Processes & Guides

Prompts & Snippets

Roadmap & Strategy

Specs & ADRs

Testing Workflows

Vault

Archive

Clone this wiki locally