From c383c41f925fd75a2d4061982f9b9a3d2a1dcf34 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Wed, 13 May 2026 14:11:48 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20stop=20tracking=20GIT=5FHASH=20?= =?UTF-8?q?=E2=80=94=20setup.py=20owns=20it=20at=20install=20time?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each feature commit was being followed by a "bump GIT_HASH to X" commit whose value was always one behind HEAD (the bump itself shifted HEAD again). The file in git was effectively a stale record that setup.py overwrote on every CI install anyway via `git rev-parse --short HEAD`. Pure churn — half the commit log was these bump commits. Untrack the file, .gitignore it, drop the bump from CLAUDE.md's AUTO-PUSH and post-work-chores guidance. setup.py keeps writing the real HEAD at install; views/version.py still reads it. The /version endpoint behavior is unchanged — it just stops requiring a follow-up commit per ship. --- .gitignore | 7 +++++++ CLAUDE.md | 6 ++++-- make_post_sell/GIT_HASH | 1 - 3 files changed, 11 insertions(+), 3 deletions(-) delete mode 100644 make_post_sell/GIT_HASH diff --git a/.gitignore b/.gitignore index 0b8bb32..fdba633 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,13 @@ vars.fish vars.sh +# GIT_HASH is rewritten by setup.py at install time via +# `git rev-parse --short HEAD`. Tracking it just produced churn: +# every feature commit was followed by a "bump GIT_HASH to X" commit +# whose value was always one commit behind HEAD (because the new +# bump commit itself shifted HEAD again). setup.py owns this file. +make_post_sell/GIT_HASH + *.egg *.egg-info *.pyc diff --git a/CLAUDE.md b/CLAUDE.md index e8a1c27..4a82445 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -317,7 +317,9 @@ Disabling or removing tests weakens our codebase and is unacceptable. Tests are If a feature touches all three layers (model + view + template), it needs tests in all three files. No exceptions. Untested code is incomplete code. -**AUTO-PUSH**: Commit and push when our work is done — no need to ask fox. If tests were written, they must pass first. If no tests are required (defect fix, config, docs), push immediately after committing. Bump GIT_HASH after pushing. 🔥 == 🔥 — remove all friction. +**AUTO-PUSH**: Commit and push when our work is done — no need to ask fox. If tests were written, they must pass first. If no tests are required (defect fix, config, docs), push immediately after committing. 🔥 == 🔥 — remove all friction. + +**DO NOT bump `make_post_sell/GIT_HASH`.** The file is gitignored. `setup.py` rewrites it at install time via `git rev-parse --short HEAD`, so the deployed `/version` hash is always the real HEAD. Manually committing a bumped value just produced churn — each bump's recorded value was one commit behind the actual HEAD it was bumping toward. ## Post-Work Chores @@ -327,7 +329,7 @@ After completing a feature or significant change, always perform these chores be 2. **Docs** — Update `docs/architecture.md` (feature toggle matrix, ticket index, diagrams) and `docs/design-system.md` (new components/sections) to reflect our change. 3. **Portal** — Update our marketing site at `~/git/www.makepostsell.com` (feature cards in `index.html`, includes list in `pricing.html`) when a user-facing feature is added. 4. **CLAUDE.md** — Update this file if our change introduces new patterns, form sections, model columns, or conventions that future work needs to know about. -5. **Commit & push** — Per AUTO-PUSH, commit and push when done. No friction. Bump GIT_HASH. +5. **Commit & push** — Per AUTO-PUSH, commit and push when done. No friction. (Do **not** bump GIT_HASH — setup.py handles it at install time.) ## Commit Message Guidelines diff --git a/make_post_sell/GIT_HASH b/make_post_sell/GIT_HASH deleted file mode 100644 index 2a873e4..0000000 --- a/make_post_sell/GIT_HASH +++ /dev/null @@ -1 +0,0 @@ -becd6e3