This repo's own hosting, issue tracking, and pull requests move from Gitea to OneDev (ADR-0029), keeping the Gitea repo as a read-only archive rather than deleting it. plugins/gitea is unaffected — it continues to ship as a marketplace product regardless of what this repo hosts itself on. Records the full execution plan (prerequisites, mirror/issue/PR/release phases, verification checklist) and updates CONTEXT.md's Issue entry and AGENTS.md's source-of-truth line to name OneDev instead of Gitea. ADR: 0029 Refs: ADR-0007 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GGCPJBXPLJP5FprL4C8nu3
3.0 KiB
3.0 KiB
OneDev supersedes Gitea as this repo's canonical forge
Supersedes: ADR-0007 (Gitea as the exclusive issue tracker)
This repo's own hosting, issue tracking, and pull requests move from Gitea (git.dev.rkdr.net) to
OneDev (onedev.dev.rkdr.net/Holocron). Gitea is frozen and kept reachable read-only as a historical
archive rather than deleted, so commit messages, branch names, and ADRs that cite Gitea issue/PR
numbers (e.g. #124, #140) stay resolvable. plugins/gitea/ is unaffected — it continues to ship
as a marketplace product for consumers with Gitea repos of their own; this decision is about what
this repo uses on itself, not what this repo authors and distributes.
Considered and rejected
- Preserving Gitea's issue/PR numbers in OneDev. Rejected: OneDev issues and pull requests use independent per-type counters, unlike Gitea's single shared sequence — there is no API path to reproduce both simultaneously without a fragile create/delete padding hack. Migrated issues carry a back-link to their original Gitea URL instead; new work uses OneDev's own numbers from the cutover point forward.
- Recreating historical PR objects (title/description/reviews) in OneDev. Rejected for the
existing ~140 closed/merged PRs:
tod pr createrequires a live source branch, and Gitea already deletes head branches on merge, so recreating them means resurrecting deleted branches from merge-commit parent SHAs, opening throwaway PRs, and discarding them without merging (to avoid a second, divergent merge commit alongside the mirrored git history). The git mirror already carries every commit, message, author, and merge losslessly; the archived Gitea instance still holds the original PR/review UI for anyone who needs it. Any PRs genuinely open and in flight at cutover time are migrated for real, not archived. - Recreating Gitea's
Reviewed/*,Status/*, andCompat/Breakinglabels as new OneDev labels. Rejected in favor of OneDev's own out-of-the-box shape: structuredType/Priorityfields (whichKind/*andPriority/*map onto directly) plus the native three-state workflow (Open/In Progress/Closed, no built-in disposition states). Disposition information that has no native home becomes a one-line note in the migrated issue body instead of a second, parallel, unstructured label taxonomy next to the real fields.
Consequences
- Gitea issue/PR numbers cited in existing commit messages and docs remain valid only as long as the archived Gitea instance stays reachable; they are not remapped to OneDev numbers anywhere.
- The six first-party
apm.ymlplugin dependencies (git,gitea,kyberforge,lint,core,bin), previously resolved unpinned againstgit@git.dev.rkdr.net:Defame1297/holocron.git, are repointed to the OneDev remote as part of this migration — apm's own dependency resolution must track the now-canonical remote, not a frozen archive. AGENTS.md's "this repo and Gitea are the only source of truth" language is updated to name OneDev.