# 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 create` requires 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/*`, and `Compat/Breaking` labels as new OneDev labels.** Rejected in favor of OneDev's own out-of-the-box shape: structured `Type`/`Priority` fields (which `Kind/*` and `Priority/*` 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.yml` plugin dependencies (`git`, `gitea`, `kyberforge`, `lint`, `core`, `bin`), previously resolved unpinned against `git@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.