Open Infrastructure Alternatives to GitHub (Discussing Motivation, Choice, Migration etc.) #4271
Replies: 13 comments
-
Thanks very much for making this issue, @RichardJActon! Adding breadcrumbs to #2811 and #2337 just to have links to those. |
Beta Was this translation helpful? Give feedback.
-
@RichardJActon Thank you so much for opening this issue! Radicle is what I think is a very interesting, fully open source and peer-to-peer GitHub replacement relying on no central servers: At first glance it's probably hard to migrate a big team to it from GitHub, but it's been sitting as a tab in my browser for 2+ years and finally here's a place to put it so I can close that tab... |
Beta Was this translation helpful? Give feedback.
-
And forgejo is related to the ForgeFed codeforge interoperability protocol: For which Vervis is trying to be a reference implementation: |
Beta Was this translation helpful? Give feedback.
-
Love to see Codeberg on that list already! Maybe one interesting bit to flag is that they are a German "eingetragener Verein" (a registered non-profit), which means you can become a member and get a say in the governance: https://docs.codeberg.org/getting-started/what-is-codeberg/#what-is-codeberg-e.v.%3F |
Beta Was this translation helpful? Give feedback.
-
If I may suggests a variation on one of the community question for the list above based on the original slack post I made:
|
Beta Was this translation helpful? Give feedback.
-
@kmcdono2 Archiving might be an issue worth a seperate thread but There are two main places I'm aware of for general archiving of code: There are also some more specific curatorial efforts build on top of some of these infrastructures like EOSSR see: https://doi.org/10.12688/openreseurope.15692.2 One of the key differences between the two is that software heritage archives the entire git repository and zenodo only archives specific snapshots. So I would say that for a software development project that software heritage might be a better choice. For capturing a point in time snapshot, say at time of publication, for an academic project containing essentially one-off analysis code then Zenodo's approach is sufficient. Both produce persistent identifiers, though I personally somewhat prefer software heritages approach as I like content based addressing. Both also have support for good project metadata. Ease of integration with your gitforge might be a consideration for ongoing projects where you want to automate snapshots/syncronisation with the archive. Software heritage support archiving entire forges so if you have your own git forge with many projects that you want all to be archived you can request that they add it. They also have what seem like more complete integrations for more platforms and source control systems than zenodo which is a touch maual if you are on anything other than github where the integration is very easy. |
Beta Was this translation helpful? Give feedback.
-
change title as there is a "Github discussion" tool. thanks for opening this, very important topic. |
Beta Was this translation helpful? Give feedback.
-
This issue is about technology alternatives, which is great and I will engage with this, but also could we start by mentioning forges more equitably even without the proposed more technical chapter? I just did some wordcounts in the book/website tree, looking at mentions of software forges. It looks like github is about 642, gitlab is 38 and bitbucket is 6. Codeberg and Sourcehut in particular can reasonably be mentioned along with these large American forges because they have large numbers of projects, and for certain user requirements such as visual accessibility (Sourcehut) and privacy (both) the American forges don't really have answers. I got these numbers by running the following approximate counter:
|
Beta Was this translation helpful? Give feedback.
-
I'm going through this very decision process for one of my projects. I'll put some thoughts down here. The first question on @RichardJActon 's list was:
I find it helpful to think of two levels at which software collaboration happens.
So what are the choices? In terms of practical user communities, if you wish to install a DVCS plus applications, there are only two DVCSs that are maintained: Git (which has one implementation, and is overwhelmingly the most-used), and Fossil (two implementations.) Both are commandline tools. Both come with a GUI, with Fossil's much more complete. Setting up your own Git server to share DVCS changes with other Git users is more complicated than setting up your own Fossil server. Fossil also has some advanced forge features built into one of its implementations. If you use a software forge, the forge usually takes care of setting up and integrating the DVCS for you, and after that it is like any other sophisticated collaboration web app. You have two kinds of forge to choose from:
There is another dimension of forge to choose from:
|
Beta Was this translation helpful? Give feedback.
-
Another @RichardJActon question was:
One of the problems is migration of issues. Here is what I can contribute from work done elsewhere:
As to Git:
... just a few things we have noticed. |
Beta Was this translation helpful? Give feedback.
-
Scope and APIs@RichardJActon said:
I think it is only fair to GitHub, and inclusive to Turing Way users, to observe that GitHub has put a lot of effort into maintaining their commandline tool. There are very few web operations on GitHub that cannot be done via the cli, and for people with vision impairments that really matters, particularly because GitHub are very poor at accommodating visual impairments. There are several sticking points that mean the cli is not a full solution, especially authentication and token management, which not only require the web interface but an inaccessible web interface. The cli is also a great help for dealing with things the web interface doesn't care about, like giving you an overview of multiple repos. Let's say you wanted to see the issues that involve you in three repos in TTW, a couple GitHub cli commands and you can know straight away (or even be informed in your web browser if that's how you like it.) All GitHub alternatives have equivalents to the GitHub cli that I know of, which means it is in fact a point of comparison. |
Beta Was this translation helpful? Give feedback.
-
Specifically: |
Beta Was this translation helpful? Give feedback.
-
Removing the infrastructure label. Although we will have opinions there isn't a specific responsibility or ask for the WG here. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
An extension to #2811 with a narrower focus specifically on alternative git hosting and 'gitforges' 'platforms'/ web front ends layered on top of the git version control tool. Inspired by a Slack thread in the #ask-away channel.
Many people are uncomfortable with the use of GitHub as infrastructure for their projects of a variety of reasons. Much FLOSS (free/libre and open source) software is developed on GitHub despite github not itself being FLOSS, though the underlying version control tool git is (GPLv2) the web interface layered on top is not, nor is the continuous integration and deployment (CI/CD) system GitHub Actions. The centralization of this key infrastructure for many open source projects under the ownership of Microsoft a company with at best a chequered history with open source is disquieting to many. Most recently the controversial use of code hosted on GitHub in the training of large language models that are intended to function as coding assistants has cause many to again reflect on this question or perhaps to consider it for the first time.
The front ends placed on top of git also influence how the tools is used, Linux famously continues to use a mailing list to manage kernel development as the GitHub model does not scale out well to a project with as many contributors as the Linux kernel. How might such consideration impact the choice of tool for your project?
Practical Questions
Community, Communications, & Political Questions
Scope
To keep things on topic:
List of alternatives
these may have varying degrees of openness, this list is far from exhaustive.
List of discussions and comparisons of alternatives
Examples of Projects using these alternatives
(so that people can see and compare real workflows)
Beta Was this translation helpful? Give feedback.
All reactions