feat: implement the cheshirecube to GitHub source sync (fast-export/import) #386

Open
opened 2026-08-17 03:19:11 +00:00 by hexajon · 0 comments
Owner

Goal

Build the one-way source sync that keeps the GitHub SHA-1 mirror (github.com/sixfold-space/madtea) current, so go get madtea.lol resolves. The mechanism is documented in docs/contributing/github-source-sync.md.

Why

The canonical repo is SHA-256; GitHub is SHA-1 only, so no git push mirror is possible. The go-get source is an independent SHA-1 copy maintained by git fast-export --signed-tags=strip | git fast-import, then push (ADR 0032, amended 2026-08-16). This is not built yet - only documented.

Scope

  • A sync script implementing the runbook's fast-export/fast-import + push to the GitHub mirror (deterministic SHA-1 output).
  • Wire it into the release flow so the release tag reaches GitHub before GoReleaser publishes, and/or a cheshirecube CI job on push + tag.
  • Uses the release GitHub PAT (docs/contributing/release-credentials.md), scoped madtea-release-pat.

Done when

  • A release tag reaches the GitHub SHA-1 mirror with go.mod = madtea.lol.
  • go install madtea.lol/cmd/madtea@latest resolves (verify per the runbook).

Related: part of the migration epic #420. The first release also depends on the GitHub-API retooling in #421.

## Goal Build the one-way source sync that keeps the GitHub SHA-1 mirror (`github.com/sixfold-space/madtea`) current, so `go get madtea.lol` resolves. The mechanism is documented in `docs/contributing/github-source-sync.md`. ## Why The canonical repo is SHA-256; GitHub is SHA-1 only, so no git push mirror is possible. The go-get source is an independent SHA-1 copy maintained by `git fast-export --signed-tags=strip | git fast-import`, then push (ADR 0032, amended 2026-08-16). This is not built yet - only documented. ## Scope - A sync script implementing the runbook's `fast-export`/`fast-import` + push to the GitHub mirror (deterministic SHA-1 output). - Wire it into the release flow so the release tag reaches GitHub before GoReleaser publishes, and/or a cheshirecube CI job on push + tag. - Uses the release GitHub PAT (`docs/contributing/release-credentials.md`), scoped `madtea-release-pat`. ## Done when - A release tag reaches the GitHub SHA-1 mirror with `go.mod = madtea.lol`. - `go install madtea.lol/cmd/madtea@latest` resolves (verify per the runbook). Related: part of the migration epic #420. The first release also depends on the GitHub-API retooling in #421.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
sixfold-space/madtea#386
No description provided.