15 lines
1.3 KiB
Markdown
15 lines
1.3 KiB
Markdown
# ADR-0005: Version Control Discipline
|
|
|
|
## Context
|
|
Over time, the project codebase has accumulated multiple versioned copies of key scripts, templates, and specs using suffixes like `_v1`, `_v2`, `_v3` (e.g., `KisApiClient` versions, `build_anti_late_chase_v6.py`, `evaluate_qualitative_sell_strategy_accuracy_v1.py`). This creates duplicate maintenance overhead, increases directory clutter, and conflicts with the core philosophy of Git, which is designed to track historical revisions of a single file path.
|
|
|
|
## Decision
|
|
1. **No Suffix Sprawl**: We deprecate the practice of creating new file paths with version suffixes (e.g., `filename_v2.py`) for subsequent iterations of the same logic. All future modifications must be made directly to the primary, canonical file path.
|
|
2. **Git for History**: We will rely on Git tags, branches, and commit histories to track, audit, and revert changes to files.
|
|
3. **Consolidation**: Existing versioned files must be audited. When logic is promoted and stable, older version files must be deleted, and the latest logic must reside in the canonical, non-suffixed (or latest standardized) version.
|
|
|
|
## Consequences
|
|
* Reduced file clutter in `tools/` and `spec/` directories.
|
|
* Single source of truth per tool/script.
|
|
* Clearer code reviews, as diffs will be tracked against the same file rather than comparing two different files.
|