The project site for ForgeFed, an ActivityPub-based protocol for federating code forges, with posts on its development and specification.
HN commenters see federation as a way to break GitHub's network effects and let forges interoperate, but say the project is still not in great shape.
> I agree that e-mail is not perfect, but... how is GitHub better?
Please look at my comment again. I prefer email to locked in forges.
> Devs like new shiny toys, and e-mails are old technology
There is one aspect where such forges have an advantage over email - a better user experience. Aerc and the likes all good - but Github and others provide a good user experience over a tool that everyone uses - the web browser.
> we should have something better than e-mail in 2023
We really should have something better than email. I'm saying this as someone who operates a personal mail server and a bunch of desktop services for it. It's really hard to get the setup correct.
In that context, it's worth looking at forgefed (https://forgefed.org/). It's a protocol for federating forges like Gitea and Gitlab. It's built on top of ActivityPub - which behaves a bit like email (it has inboxes and outboxes for every user). From the spec, it seems like pull requests happen by sending patches to the destination forge.
> Nobody takes the time to try the e-mail workflow (even though it's really two git commands)
Email workflow seems simple. But there are two things that make it complicated:
1. The patches don't specify the commits they apply to. It's simply assumed that they apply to the head of the main branch. The commits have to be carefully rebased on the main branch before sending the patches. It could otherwise lead to conflicts and a lot of wasted time.
2. Each commit/patch is…
Some alternative forge are built with decentralization in mind:
- forgejo [1] is working on ForgeFed [2], an extension of ActivityPub (the protocol made popular by Mastodon)
- tangled is built on top of ATproto (the protocol behind Bluesky) [3]
- radicle is rolling their own protocol, more peer-to-peer than federated [4]
- fossil is a broader all-in-one solution: not only a new Version Control System (a replacement for git), but also a forge (has the features of a forge: issues (bug-tracking), PRs, comments, wikis, ...) [5]
The other self-hosted forges such as gitlab, sourcehut, gitea don't have such a high level of decentralization and resilience. It does not make them less good, they are solving different problems, mainly being a easy-to-use self-hosted alternative to proprietary forges. For instance Gitea has Gitea Actions, which is designed to be compatible with GitHub Actions [6], while I don't think running CI/CD workflow in a decentralized way will the priority of projects like tangled or radicle.
[1] https://forgejo.org/faq/#is-there-a-roadmap-for-forgejo
[2] https://forgefed.org/
[3] https://tangled.org/
[4] https://radicle.dev/guides/protocol#federation-vs-peer-to-peer
[5] https://fossil-scm.org/home/doc/trunk/www/index.wiki
[6] https://docs.gitea.com/usage/actions/overview
answer to which the standard response that _led_ to "code forge" being a word, is: ok but what about all the stuff that isn't just "git on the network"? Pull requests, basic tickets, eventually some of the CI...
Or framed differently: "What category of software would you describe Github as?"
For all of this, the answer the community came together to find is ... Code Forge.
One extra resource on it: ForgeFed[1], which describes itself as:
> ForgeFed is a federation protocol for software forges and code collaboration tools for the software development lifecycle and ecosystem. This includes repository hosting websites, issue trackers, code review applications, and more. ForgeFed provides a common substrate for people to create interoperable code collaboration websites and applications.
[1]: https://forgefed.org/
Surprised no one mentioned ForgeFed [0]:
> ForgeFed is a federation protocol for software forges and code collaboration tools for the software development lifecycle and ecosystem. This includes repository hosting websites, issue trackers, code review applications, and more. ForgeFed provides a common substrate for people to create interoperable code collaboration websites and applications.
It's based on ActivityPub [1], the same protocol that powers Mastodon [2], Lemmy [3], and Pixelfed [4].
[0] https://forgefed.org/
[1] https://activitypub.rocks/
[2] https://joinmastodon.org/
[3] https://join-lemmy.org/
[4] https://pixelfed.org/
there's https://forgefed.org/ defined by the creators of forgejo. there is no complete implementation of the spec. from the last forgejo changelog, the "star" action has been completely federated. federated PRs and issues are a long way away.
https://tangled.sh is the other contender in this space that I know of. uses atproto (same as bluesky) under the hood.
fundamentally activitypub is insufficient to define these kind of networks. you'd need to have some sort of object-capability representation. the creators of forgefed are also moving in this direction: https://codeberg.org/Playwright/playwright
Yeah I have to disagree. I even host my own GitLab (because I heavily prefer its CI/CD over GitHub's Actions), but if I wanted to contribute to your project, I'm far more likely to do it on GitHub than to convince myself to create yet another GitLab account on like the sixth instance.
Until alternatives finally implement something like ForgeFed (https://forgefed.org/) which would allow me to simply contribute with something like @user@my.gitlab-instance.com, I'm gonna continue preferring GitHub for my public contributions and still use GitLab privately.