1.3 KiB
1.3 KiB
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
- 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. - Git for History: We will rely on Git tags, branches, and commit histories to track, audit, and revert changes to files.
- 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/andspec/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.