Archive the experiment branches as tags, and point the citations at them - #234
Merged
Conversation
The branch list had 18 entries and two of them were live work. The other
sixteen were finished experiments — but seven are cited BY NAME in
`docs/history` as the provenance of published numbers, so they could not just
be deleted without breaking the thing that makes those numbers traceable.
Each is now a tag at the exact tip its branch had:
archive/exp-139-bigint2-middle-path archive/feat-stack-integration
archive/feat-aggregate-witness-read-v2 archive/feat-stack-liftx
archive/feat-bigint2-middle archive/feat-stack-plus-packer
archive/feat-join-tree-pipelining-v2 archive/feat-tier0-codegen
archive/hazync_helix_experiment archive/perf-bigint2-middle-path
Verified 10/10 against the branch tips before any branch was deleted. The
convention already existed here — `archive/bigint2-ecdsa-bench` and
`archive/docs-139-packer-consequence` predate this.
Every citation is rewritten to the tag, in the same commit that removes the
branch, because a reference to a deleted branch is worse than no reference: it
looks resolvable. `docs/history/README.md` now says so, and says how to fetch
them.
## Why tags rather than a PR each
A PR would also preserve the diff — GitHub keeps `refs/pull/<n>/head` forever,
which is what made the six branches deleted earlier safe. But ten PRs is ten
full CI runs (`adversarial.yml` triggers on `pull_request`), and a PR implies
a proposal to merge, which none of these are. Tags trigger nothing: the only
tag-sensitive workflow is `release-sign.yml`, which fires on a `release`
event, not on a pushed tag.
Result: 18 branches -> 2 (`main`, and the open PR's branch).
Claude-Session: https://claude.ai/code/session_01BGBba1FtGQjp2focJGWtjU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The branch list had 18 entries; two were live work. The rest were finished experiments — but seven are cited by name in
docs/historyas the provenance of published numbers, so deleting them would break the thing that makes those numbers traceable.Each is now a tag at the exact tip its branch had, verified 10/10 before any deletion:
The convention already existed —
archive/bigint2-ecdsa-benchandarchive/docs-139-packer-consequencepredate this.Citations rewritten in the same commit that removed the branches. A reference to a deleted branch is worse than none: it looks resolvable.
docs/history/README.mdnow documents the convention and how to fetch the tags.Why tags, not a PR each
A PR would also preserve the diff — GitHub keeps
refs/pull/<n>/headforever, which is what made the six closed-PR branches deleted earlier recoverable. But ten PRs is ten full CI runs (adversarial.ymltriggers onpull_request), and a PR implies a proposal to merge, which none of these are. Tags trigger nothing: the only tag-sensitive workflow isrelease-sign.yml, which fires on areleaseevent.18 branches → 2.