I Am Using GitHub Under Protest
Github's decision to sponsor me is so recent that I haven't been able to cash out the $550 payment yet.
In spite of that, I can't leave the platform fast enough. I certainly do not have the spare-time to move hundreds of projects to a new home... but I'm getting started.
GitHub is a proprietary, trade-secret system that is not Free and Open Source Software (FOSS). I am deeply concerned about using a proprietary system like GitHub to develop FOSS projects.
Micro Issues
- A recent proposal to extend Github-flavored Markdown (ref)
- Literally breaks regular markdown syntax of links in headings.
- English-only
- Incompatible with Semantic HTML (POSH) (by abusing the
blockquote
tag; this also raises issues of accessibility) - Incompatible with existing Markdown standards proposals
- Rudely ignorant of the community-centered approach to extending Markdown, which, ironically, Github started
- Contributes to vendor lock-in.
- Will force countless volunteer FOSS developers to waste time adding compatibility to their projects that use Markdown and attempt to support GFM.
- More than 2 years of ignoring requests to add an important feature (
allow-failure
) to Github Actions (ref, ref). When not ignoring, Github is completely misunderstanding the feature. How are those building Github Actions so deeply unfamiliar with core features of competing CI platforms. - Latest iteration of Achievements was bad.
- Microsoft (parent of Github) has decided to ban commercial open source apps from their app store.
Macro Issues
For a broad perspective on the practical issues, I can't make the argument any better than it was made in 2010, and recently by Software Freedom Conservancy, here and here. Github has crossed the Rubicon.
What about community?
I am interested in people's thoughts on where to go next. Community involvement matters for open source projects, and I have dozens of them that could be affected, the biggest being oauth
and oauth2
Ruby gems.
Regarding fragmentation, hopefully it will be resolved by federation, which is to source forges (like Github) what git was to version control (i.e. makes it distributed, at least in theory).
It looks like Gitea, Codeberg and Hostea will join the fediverse soon, within a year, and there are projects that will integrate Github with the fediverse as well (i.e. federate Github commits, PRs, issues, etc).
Questions
- Have any major Ruby projects already left?
- Anyone have experience with mirroring to multiple git hosts, as that might be a temp bridge solution?
- Self-hosting a git service?
- Thoughts on the centralized git hosting providers recommended by SF Conservancy?
Poll
Where to take projects (e.g oauth2
)?
Top comments (22)
I think it'd be cool if there was some Fediverse connected alternative. What I like about GitHub is being able to follow projects and get notifications. Many of the alternatives are too self contained, or don't provide such a dashboard. It sounds like Gitea, Codeberg and Hostea will join the Fediverse soon.
Depending on your needs and values, Fediverse connectivity might be something to consider.
Hey Peter, apologies that this was accidentally unpublished.
I would be really in to a fleshed out post dedicated to the issues here. I intend to read through the linked discussions, but if you cared to share a post getting into some of these details, I'd personally really appreciated it! This is an area close to my heart.
The irony of having to sign up to a proprietary system full of dark UX patterns (greyed-out skip boxes) just to comment here isn't lost on me ;-P.
Now that's done, I will say that I migrated my own projects from GitHub to GitLab a few years ago and was a very happy GitLab user for years.
More recently, in the past few months, I've migrated again - this time to sourcehut. It's not so much that I had grown to dislike GitLab, in fact, I still regard them and their product very highly. But sourcehut was even more aligned with my engineering tastes - email based contribution (no need to create an account!), fully open source, lean and performant.
I am slowly moving to SourceHut as well :)
If you are finding a GitHub alternative, GitLab is a strong contender. There's also Gitea and Codeberg (If you don't want to self-host Gitea) if you like a GItHub-inspired interface. Sourcehut is also a good choice, though the plaintext email workflow is something that you will have to get used to.
Just in case Gogs and Gitea are two great GitHub alternatives without any compagny behind it !
Gitea is great! It also has support for importing GitHub repos including issues
I've always had work split across GitHub and GitLab... seriously considering migrating all to the latter
I advise looking at codeberg.org/ it’s where progress is happening; federation, rss, activity pub. Plus a great repository importer from GitHub
So far I'm really impressed with sourcehut, codeberg, and gitlab, for different reasons...
Thank you for sharing this experience!
Hey, I got sponsored by GitHub too. Also github.com/github-community/commun... looks nice to me!
Thanks :)
I was not fully aware of this, thanks for making this post.
I've been tracking GitHub alternatives; it really depends on your needs, priorities, and values. As for the hosted services:
GitLab is the closest one to GitHub, both community and feature-wise. Some features are even more powerful (especially their CI runs circles around GitHub Actions). They also provide repository mirroring which could help with transition. Still, it's a commercial (albeit publicly traded) company (but they do have freebies for public open-source projects).
The aforementioned Codeberg is a hosted instance of Gitea provided by a Germany-based non-profit, and probably the most popular option among FOSS advocates. They provide straightforward import of repositories from GitHub, including issues and wiki. Similar is also NotABug based on Gogs, provided by The Peers Community.
There's also (a bit contrarian) Sourcehut started by Drew DeVault. Instead of Pull Requests, they use good old mailing lists with email patches, with pretty nice web interface.
If you plan to self-host, consider Fossil which packs version control, issue tracking, docs, forum, and wiki in a single repository with web UI. It's what D. Richard Hipp uses for SQLite development (and Fossil is, obviously, powered by SQLite). It can also mirror to GitHub.
So far I'm really impressed with sourcehut, codeberg, and gitlab, for different reasons... I'd like to think I could consider Fossil, but intuitively I know that's biting off more than I can handle right now.
Personally I think of GitLab as a "safe" choice in terms of community and contributors. The UI is messy, but functions are mostly the same. Also, the built-in CI is a big plus compared to more libre alternatives.