Skip to content

Archive the experiment branches as tags, and point the citations at them - #234

Merged
defenwycke merged 1 commit into
mainfrom
docs/archive-tag-citations
Sep 8, 2026
Merged

Archive the experiment branches as tags, and point the citations at them#234
defenwycke merged 1 commit into
mainfrom
docs/archive-tag-citations

Conversation

@defenwycke

Copy link
Copy Markdown
Contributor

The branch list had 18 entries; two were live work. The rest were finished experiments — but seven are cited by name in docs/history as 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:

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

The convention already existed — archive/bigint2-ecdsa-bench and archive/docs-139-packer-consequence predate 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.md now 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>/head forever, which is what made the six closed-PR branches deleted earlier recoverable. 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.

18 branches → 2.

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
@defenwycke
defenwycke merged commit c2fe80a into main Sep 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant