Repository navigation
Plugin API 2026 10 19
Adding a test runner or a reporter meant a pull request to QASight: an adapter in qasight/frameworks/ or a reporter in qasight/reporting/reporters/, plus its name in SUPPORTED_FRAMEWORKS or SUPPORTED_REPORTER_TYPES. The command framework covers runners that write JUnit XML, but anything else (a runner that needs flags injected, a reporter that posts to a team's own service) had no way in from outside the repository. Open-source users should be able to ship those as their own packages.
- Two entry point groups:
qasight.frameworks(aFrameworkAdapterclass or factory) andqasight.reporters(aBaseReportersubclass). The interfaces are the ones the built-ins already implement, so a plugin and a built-in look the same to the engine. -
qasight/plugins.pyowns discovery. The config loader,get_adapter(),ReporterFactoryand the ad-hoc plan builder ask it for the known names instead of reading the frozensets directly. - Built-in names always win, and the first plugin to claim a name keeps it; the rest are ignored with a warning. A plugin can add, never replace.
- Entry points are read once per process and a plugin is imported only when a stage or reporter uses it. Import errors and missing methods become a
PluginErrorthat names the package. -
qasight pluginslists everything;--checkimports each plugin, which is the test a plugin author runs. -
examples/plugin/is a complete plugin (aunittestadapter that writes Allure results, ajson-summaryreporter) andtests/unit/qasight/test_plugins.pyruns a real cycle through it.
We chose entry points over a pluggy hook system or a plugins: list of import paths in YAML: they are the standard Python mechanism, need no new dependency, and installing the package is the whole setup.
- Plugin stages have no default tier beyond
unitand receiveworkersunchanged; the plugin decides what it means. - The API's ad-hoc endpoint keeps its
Literalof built-in frameworks so the OpenAPI schema and generated frontend types stay static. Plugin frameworks run through cycles. - The adapter and reporter interfaces are now public API: changing them is a breaking change for plugins and needs a major version.
Usage: Command Reference § Plugins.
Generated from docs/Specs & ADRs/Plugin API - 2026-10-19.md. Edit it there; changes made in the wiki are overwritten.
Architecture
CLI Commands
Processes & Guides
- CI-CD Pipeline Setup
- E2E Harness Operations Guide
- GitLab Pages Demo
- Publishing Docker Images
- Publishing to Artifactory
- Publishing to PyPI
- Setup Snippets
- Shared Resource Pools
- Team Server
Prompts & Snippets
Roadmap & Strategy
- Feature Gaps and Quick Wins - 2026-10-31
- New User Journey Audit - 2026-11-01
- Paid Features to Offer Free - 2026-10-31
- Product Roadmap
Specs & ADRs
- Affected Test Selection - 2026-10-30
- Alerts Where Developers Look - 2026-10-22
- Architecture Consolidation - 2026-10-06
- Architecture Review - 2026-10-31
- BehaveX Reports - 2026-10-21
- Better Flaky Signal - 2026-11-01
- Command Adapter and JUnit Import - 2026-09-25
- Config JSON Schema - 2026-10-22
- Crash Detection - 2026-10-31
- Delta Comparison Policy
- Docs Site - 2026-10-19
- Docs Vault and Wiki Sync - 2026-10-07
- Easy Setup - 2026-11-01
- Engine Fixes - 2026-11-01
- Engineering Health Review - 2026-10-31
- Exporting Results - 2026-11-01
- Flaky Test Issues - 2026-11-01
- Flaky Test Quarantine - 2026-10-22
- Free Copies of Paid Features - 2026-11-01
- GitHub Action PR Comment - 2026-10-19
- Human-Run Resource Provider - 2026-10-30
- Importer and Integration Bug Hunt - 2026-10-31
- Ingest and Team Server - 2026-10-22
- Interview Readiness Fixes - 2026-10-07
- Library Packaging
- Lifecycle Fixes - 2026-11-02
- MCP Server - 2026-11-01
- New User Journey Automation - 2026-11-01
- Open Source Features - 2026-10-19
- OpenTelemetry Export - 2026-10-30
- Phase 3 Delta Comparison Engine Plan
- Phase 3 Unified Dashboard Plan
- Phase 4 BYOK and Failure Analysis
- Phase 5 UI Redesign - Cycles-First Navigation
- Playwright Adapter - 2026-10-19
- Playwright JSON Import - 2026-10-22
- Plugin API - 2026-10-19
- Product Roadmap Work - 2026-10-25
- Product to Ten - 2026-10-25
- Project Health - 2026-10-26
- QASight Logo - 2026-11-05
- Qualflare Follow-ups - 2026-10-26
- Quarantine From the UI - 2026-11-01
- Specs & ADRs
- Rename to QASight - 2026-11-04
- Repository Pattern - Database-Agnostic Refactor
- Resource Lifecycle Hooks - 2026-10-26
- Resource Pools and Leases - 2026-10-26
- Run Deletion and Stop - 2026-11-02
- Runner Coverage - 2026-10-26
- Scale Runs and Stages - 2026-10-24
- Security and Install Review - 2026-10-31
- Switchable Team Features - 2026-10-24
- Test Delivery Metrics - 2026-11-02
- Test Labels, Environments and Releases - 2026-11-02
- Test Source in AI Summaries - 2026-11-01
- Throwaway Stage Containers - 2026-10-24
- Tidy Cards and Demo Examples - 2026-11-05
- UI Design Review - 2026-10-31
- UI Polish - 2026-11-08
- UI Restyle - 2026-10-19
- UI Review Fixes - 2026-11-01
Testing Workflows
Vault