What would you want from a forge?
5 points by runxiyu
5 points by runxiyu
(This is more or less open ended, but sorta directed to users of Jujutsu and other version control systems. However, if you have a workflow with pure Git that isn't covered by many major forges, I'd appreciate hearing them too!)
I'm referring to features related to version control and the presentation/behavior of repositories itself, rather than things like SPA/JS vs server-rendered HTML, etc.
There have been many ideas in this space, such as Tangled, GitHub's stacked PRs, forgefed, etc., but I haven't found a place where people really voice their opinions and discuss on the design itself. While stacked PRs/MRs, alternative collaboration models, etc., are definitely on-topic, I've found almost no discussion on, e.g., the presentation of tags/commits/tree/blobs themselves, which seem to be largely uniform across forges other than minor formatting differences.
An absolute deal breaker for me is having code review comments being part of the repository itself. Anything that stores this extremely valuable historical content on a mailing list, in a database silo or in some other extra layer which isn’t pinned by the hash of the HEAD commit is, fundamentally, the same kind of risk as GitHub. Fossil is part-way here. It does issues, but not code reviews (https://fossil-scm.org/home/doc/tip/www/contribute.wiki), it’s still patches over email.
Once you have that info in VCS, you can add a snazzy web ui, rss feed and a mailing list on top, of course.
The second feature is built-in support for merge queue. For non-trivial projects, individual contributors should not push to the main branch. They only need to mark specific commits as “ready to be integrated”, and robots should be responsible for serializing all suggested changes, optically scheduling CI for them, and advancing main to known-good hashes.
The third feature would be CI as heterogeneous (windows + MacOS + whatever) task runner with isolation, a-la https://gregoryszorc.com/blog/2021/04/07/modern-ci-is-too-complex-and-misdirected/
Using both Gerrit & email, it’s a shame the “pull request” model is the most dominant—especially where maintainer just leave nitpicks as comments instead of just making those changes as the contributor probably doesn’t care that much about the style. …But why am missing is any non-email workflow for either Darcs or Pijul which I have been using more & more.
I wish I could see something based on XMPP instead of email where you can get real-time, decentralized collaboration on a WIP patch (one patchset per MUC? & MUCs could open like voice chat, hats, attachments, reactions, search, MAM, moderation, tombstoning when done—all already defined XEPs) while having PubSub for subscriptions, along with using it as a transport to CI. It would require its own cilent to be practical, but a lot of features would just work™ even on any client. …Realistically I think this is just having a recent affinity for this old, federated tech being extended in surprising ways.