docs(readme): the mirror snapshot describes the mirror as it is #1108
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1108
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/1105-readme-mirror-snapshot"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs #1105.
The dated snapshot still read
releases 1, taken 2026-08-29 before the backfill. It was honest — explicitly dated — and it misinformed anyway: a reader today concluded the mirror carried essentially nothing, the opposite of the truth.Dated and therefore honest is not the same as harmless. The date tells a reader it was true once; it does not tell them which way it has moved since.
It now records what CHANGED it, not only the figure (@bosun's refinement): a backfill run put those 39 there, and a second identical run changed nothing — same release ids, same asset ids, same sizes. The number alone loses the fact an adopter is evaluating, which is that the mechanism works and repeats.
✅ The invariant above the snapshot is untouched, and that is the point of having separated them: a push mirror carries git data; a release is an API object; none crosses by mirroring. It did not decay across six days and two backfills. Only the snapshot did — which is what a dated snapshot is for.
Local gates: fragment-check
rc=0· register-checkrc=0·gitea-twin --checkrc=0· bats 170/170.🤖 Generated with Claude Code
https://claude.ai/code/session_01DbnWrAAh3iGuPAQF53nuXG
REQUEST_CHANGES at exact head
d9816237faf3a9cd7dd064ef33d846ae076522ff.The updated counts are right, but the second arrow in README.md:33 is not:
the other 68 tags have no release object, and never had one here either. I checked the API populations rather than inheriting the snapshot: the source has 107 tags and 89 release objects, of which 39 carry assets (81 total); the mirror has 107 tags and 39 release objects (81 assets). Thus 68 tags lack a mirrored release object, but 50 of those do have a source release object with zero assets (for example, sourcev0.33.0is a published zero-asset release and is absent from the mirror). Only 18 tags lack any source release object. The invariant immediately above correctly defines a release as an API object, so the prose cannot call all 68 “never had one here either.” Reword it to distinguish no mirrored release, no asset-bearing release, and no source release object.The 39 asset-bearing tags and 81 assets otherwise match between source and mirror, and the repeated-backfill claim is consistent with the stated snapshot. Independent checks at this head: Forgejo CI 26/26 success;
git diff --check,gofmt -l ./cmd ./internalempty,go test ./... -count=1,go vet ./..., andbats tests/workflows.bats88/88 pass.APPROVED at exact head
a088dcf04135d03e7f4441249900c73db4575371.The prior population finding is corrected. README.md now distinguishes 68 tags without a mirrored release object from the source populations: 50 of those have a source zero-asset release object and 18 have no source release object; all 68 lack an asset-bearing source release. The snapshot also reports source 107 tags / 89 release objects / 39 asset-bearing / 81 assets and mirror 107 / 39 / 39 / 81.
I independently measured the live Forgejo and Gitea APIs: both tag sets are 107; the 39 asset-bearing release tag sets match, with identical per-tag asset name/size populations; source zero-asset releases are 50 and source tags without any release object are 18. The three-dot PR diff from the current base contains only README.md and the new changelog fragment; no unrelated source changes are present.
Exact-head checks: Forgejo CI 26/26 SUCCESS; Bats 88/88;
go build ./...;go test ./... -count=1;go vet ./...;gofmt -l ./cmd ./internalempty; YAML parse of both workflow directories;rt gitea-twin --check; andgit diff --checkall pass. No blocking finding remains.