| @@ -0,0 +1,98 @@ |
| 1 | #+title: gitbay roadmap |
| 2 | |
| 3 | Status and direction as of 2026-08-24. Issue numbers reference this |
| 4 | repository's tracker; this file is the narrative, the tracker is the |
| 5 | truth. |
| 6 | |
| 7 | * Where things stand |
| 8 | |
| 9 | Everything in the original plan is built, tested end-to-end against real |
| 10 | git/ssh/sshd/gpg, and running in production at gitbay.org: the SSH |
| 11 | control plane (usable from bare OpenSSH, enforced by test), git over |
| 12 | SSH/HTTPS/git://, signature verification with six states and epoch |
| 13 | caching, protected branches and =require_signed_commits= (push-time and |
| 14 | merge-time), issues, merge requests with four merge strategies, orgs |
| 15 | with membership-derived access, rename/transfer, repo import, invite and |
| 16 | open registration with SMTP verification, ACME TLS, the read-only and |
| 17 | accounts web modes, the JSON API fronting the whole command registry, |
| 18 | signed webhooks with retries and dead-lettering, restore-tested backups, |
| 19 | the =gitbay= CLI, and docs. The instance hosts 65 repositories including |
| 20 | this one, and its own development already runs through its issues and |
| 21 | merge requests. |
| 22 | |
| 23 | What it is today: an excellent forge for its author and for CLI-native |
| 24 | individuals. What it is not yet: a forge a GitHub-habituated *team* |
| 25 | would stay on, or a project outsiders can easily run themselves. |
| 26 | |
| 27 | * Phase 1 — collaboration credibility |
| 28 | |
| 29 | Goal: a second contributor works here for a week and misses nothing they |
| 30 | would act on. These compound: statuses gate merges, notifications close |
| 31 | the feedback loop, inline comments make review real. |
| 32 | |
| 33 | [[https://gitbay.org/krz/gitbay/issues/22][#22]] deploy keys — smallest item, unblocks CI checkout; the scope |
| 34 | already exists in the policy layer |
| 35 | [[https://gitbay.org/krz/gitbay/issues/1][#1]] commit statuses API and MR check display |
| 36 | [[https://gitbay.org/krz/gitbay/issues/3][#3]] email notifications for issue/MR activity |
| 37 | [[https://gitbay.org/krz/gitbay/issues/2][#2]] inline review comments on MR diffs |
| 38 | [[https://gitbay.org/krz/gitbay/issues/19][#19]] required approvals and CODEOWNERS (builds on #1 and #2) |
| 39 | |
| 40 | * Phase 2 — a product, not a debug view |
| 41 | |
| 42 | Goal: the site looks and reads like something you would recommend. |
| 43 | Mostly web-layer; descriptions and profiles already landed as the first |
| 44 | step. |
| 45 | |
| 46 | [[https://gitbay.org/krz/gitbay/issues/10][#10]] design revamp (umbrella: tokens, typography, identity, mobile) |
| 47 | [[https://gitbay.org/krz/gitbay/issues/6][#6]] cross-references (#N) and @mentions |
| 48 | [[https://gitbay.org/krz/gitbay/issues/23][#23]] archived repos and topics |
| 49 | [[https://gitbay.org/krz/gitbay/issues/24][#24]] blame view |
| 50 | [[https://gitbay.org/krz/gitbay/issues/7][#7]] search (repo-name filter first; code search later) |
| 51 | [[https://gitbay.org/krz/gitbay/issues/20][#20]] milestones and issue templates |
| 52 | |
| 53 | * Phase 3 — other people's forges |
| 54 | |
| 55 | Goal: someone who is not the author runs an instance and moves their |
| 56 | work to it. |
| 57 | |
| 58 | [[https://gitbay.org/krz/gitbay/issues/26][#26]] release engineering: versioned builds, go-install vanity |
| 59 | imports, Homebrew/deb — the adoption gate for everything below |
| 60 | [[https://gitbay.org/krz/gitbay/issues/27][#27]] repository maintenance (admin gc/stats, scheduled repack) |
| 61 | [[https://gitbay.org/krz/gitbay/issues/8][#8]] releases (notes + assets; also hosts gitbay's own binaries) |
| 62 | [[https://gitbay.org/krz/gitbay/issues/17][#17]] issue/PR history import from GitHub |
| 63 | [[https://gitbay.org/krz/gitbay/issues/18][#18]] push/pull mirroring for gradual migration |
| 64 | [[https://gitbay.org/krz/gitbay/issues/14][#14]] audit logging and multi-user hardening |
| 65 | [[https://gitbay.org/krz/gitbay/issues/9][#9]] web signup for open/invite instances |
| 66 | |
| 67 | * Phase 4 — reach |
| 68 | |
| 69 | Bigger bets, each valuable independently; order by appetite. |
| 70 | |
| 71 | [[https://gitbay.org/krz/gitbay/issues/13][#13]] CI/CD via external runners (after #1; the forge never executes |
| 72 | repository content) |
| 73 | [[https://gitbay.org/krz/gitbay/issues/16][#16]] Git LFS |
| 74 | [[https://gitbay.org/krz/gitbay/issues/15][#15]] static page hosting (needs the separate-origin decision) |
| 75 | [[https://gitbay.org/krz/gitbay/issues/11][#11]] iOS app (hutch-based) and [[https://gitbay.org/krz/gitbay/issues/12][#12]] Android |
| 76 | [[https://gitbay.org/krz/gitbay/issues/21][#21]] teams within orgs |
| 77 | [[https://gitbay.org/krz/gitbay/issues/25][#25]] wikis |
| 78 | |
| 79 | * Explicitly not planned |
| 80 | |
| 81 | Recorded so their absence reads as a decision, not an oversight: |
| 82 | |
| 83 | container/package registry — scope creep away from "forge"; external |
| 84 | registries integrate via CI |
| 85 | email patch flow — revisit only if sourcehut-style demand appears |
| 86 | federation (ForgeFed) and Postgres — no current need at this scale |
| 87 | |
| 88 | * Open questions |
| 89 | |
| 90 | **What is gitbay.org?** Today: the author's personal forge and the |
| 91 | project's home. Options: keep it closed (flagship demo), invite-only |
| 92 | for collaborators, or eventually open registration (which pulls #14, |
| 93 | #9, and rate limiting forward). No decision needed until Phase 1 |
| 94 | lands. |
| 95 | **Versioning**: nothing is tagged. Suggest cutting v0.1.0 with #26 and |
| 96 | adopting semver for the protocol_version relationship. |
| 97 | **Second-contributor readiness**: CONTRIBUTING notes, and whether MRs |
| 98 | from outside collaborators imply moving gitbay.org to invite mode. |