Commit 0c587b6a74
Verified · cmc
Layout: unified · split
README.org +1
| @@ -105,6 +105,7 @@ via =gitbay man=, completions via =gitbay completion <shell>=. | |||
| 105 | - [[file:docs/users.org][user guide]] — accounts, keys, verified commits, repos, issues, MRs, scripting | 105 | - [[file:docs/users.org][user guide]] — accounts, keys, verified commits, repos, issues, MRs, scripting |
| 106 | - [[file:docs/admin.org][admin guide]] — install, full configuration reference, backup/restore, upgrades | 106 | - [[file:docs/admin.org][admin guide]] — install, full configuration reference, backup/restore, upgrades |
| 107 | - [[file:docs/api.org][API and webhooks]] — the JSON API contract, tokens, webhook payloads and HMAC | 107 | - [[file:docs/api.org][API and webhooks]] — the JSON API contract, tokens, webhook payloads and HMAC |
| 108 | - [[file:docs/roadmap.org][roadmap]] — status, phased plan, and what is deliberately not planned | ||
| 108 | 109 | ||
| 109 | * Development | 110 | * Development |
| 110 | 111 | ||
docs/roadmap.org added +98
| @@ -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. | ||