feat: adopt madtea.lol vanity import path and route distribution through the GitHub edge #420
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
Reference
sixfold-space/madtea#420
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Goal
Make
go install madtea.lol/cmd/madtea@latestwork, and serve the install channels a user's machine fetches directly from GitHub, so networks that allowlist github.com but not a self-hosted forge can still install madtea.Public home and distribution topology
I settled this a while ago and never wrote it down, which is why it kept getting re-opened. It is recorded here and as ADR 0032.
git.cheshirecube.cloud/sixfold-space/madtea.github.com/sixfold-space. Everything a user's machine fetches directly lives here: release binaries, the curl installer, the self-updater,homebrew-tap,scoop-bucket, theclaude-pluginsmarketplace, and the go-get mirror. Reason: corporate proxies allowlist github.com, not a self-hosted.clouddomain.madtea.lol. The go-import meta onmadtea.lolpoints atgithub.com/sixfold-space/madtea, and the Go module path becomesmadtea.lol. This keeps the import path portable off any single forge.Scope
madtea.lol(go.modplus every internal import).go installline becomesmadtea.lol/cmd/madtea@latest. Commit the push-mirror runbook (docs/contributing/github-push-mirror.md).Out of scope (infrastructure)
Creating the GitHub push mirror. The runbook is
docs/contributing/github-push-mirror.md.go getresolves only after the first post-rename release reaches the GitHub mirror.Done when
module madtea.lol.go install madtea.lol/cmd/madtea@latest.madtea.lolforgo get), and human/source links point at cheshirecube.Correction after checking the object format: the canonical repo is SHA-256, as all of my Forgejo repos are. GitHub is SHA-1 only and cannot host a SHA-256 repo, so the push mirror in the scope above is impossible.
Revised mechanism. The topology is unchanged (GitHub stays the go-get source and the distribution edge), only the plumbing changes:
git fast-export | git fast-importsync in cheshirecube CI, not a push mirror. The SHA-1 output is deterministic from the source content.madtea updateverifies, so end-user trust is intact.Recorded as the 2026-08-16 amendment to ADR 0032. Runbook:
docs/contributing/github-source-sync.md(replaces the push-mirror runbook).Migration status
The config repoint is merged (PR #382): module path to
madtea.lol, distribution to GitHub, source home to cheshirecube, docs updated. Gate-green.Remaining work, all tracked:
go get madtea.lolto resolve.example.com; ADR issue-links to cheshirecube; genuine externals and history exempt).Facts worth stating plainly here, so nobody has to reconstruct them (also in ADR 0032):
go install madtea.lolresolves (full-public milestone) #455go install madtea.lolresolves (full-public milestone) #455