|
| 1 | +# QSL version control plane |
| 2 | + |
| 3 | +QuantRuntimeSettings is the control plane for QuantStrategyLab internal version |
| 4 | +management. |
| 5 | + |
| 6 | +## Source of truth |
| 7 | + |
| 8 | +- `compat/bundles/*.toml` is the source of truth for internal repository commit pins. |
| 9 | +- Each consumer repository declares its bundle in `qsl.toml`. |
| 10 | +- Consumer files (`pyproject.toml`, `uv.lock`, `requirements.txt`, `constraints.txt`) must match the declared bundle. |
| 11 | +- `internal_dependency_matrix.json` is generated from local consumer dependency files; do not hand-edit it except for emergency repair. |
| 12 | + |
| 13 | +## CLI |
| 14 | + |
| 15 | +Use `qslctl` for repository and workspace checks: |
| 16 | + |
| 17 | +```bash |
| 18 | +python3 python/scripts/qslctl.py check --repo-root ../UsEquityStrategies |
| 19 | +python3 python/scripts/qslctl.py check-all --projects-root /Users/lisiyi/Projects |
| 20 | +python3 python/scripts/qslctl.py report --projects-root /Users/lisiyi/Projects |
| 21 | +python3 python/scripts/qslctl.py plan --projects-root /Users/lisiyi/Projects |
| 22 | +python3 python/scripts/qslctl.py generate-matrix --projects-root /Users/lisiyi/Projects --check |
| 23 | +python3 python/scripts/qslctl.py generate-matrix --projects-root /Users/lisiyi/Projects --sync |
| 24 | +``` |
| 25 | + |
| 26 | +## Rollout policy |
| 27 | + |
| 28 | +1. Create or update a bundle in `compat/bundles/`. |
| 29 | +2. Apply that bundle by ring: core → strategy libraries → pipelines/research → runtime platforms → ops/tooling. |
| 30 | +3. Regenerate `internal_dependency_matrix.json` after consumer pins are updated. |
| 31 | +4. Keep strict checks enabled only after a ring is converged. |
| 32 | + |
| 33 | +## Workspace report / plan |
| 34 | + |
| 35 | +- `qslctl report` is read-only. It groups the current workspace by ring, status, and bundle hotspot. |
| 36 | +- `qslctl plan` is read-only. It renders the ring-by-ring convergence order and highlights which repos should be fixed before the next ring starts. |
| 37 | +- Use `report` to answer “what is broken right now?” and `plan` to answer “what should we fix first?” |
0 commit comments