Alexey's blog

I write about Free Software, tech, Linux and privacy.

This article is a criticism of our favorite Facebook of coding by the name of Github.com. Despite that, some points apply to other projects like Gitlab, Gitea or Gogs.

Proprietary software should not exist

Github itself is not Open Source when they try to push Open Source to the masses. What the hell?

Github has some secret algorithms for determining what you would like to see (in style of TikTok). One example: I have made some suggestions about note taking apps in privacy-respecting repo and after that I found a note taking app in recommendations. Coincidence?

Gitlab is Open Core, there are proprietary bits to it. Gogs and Gitea are fully Open Source.

Stars are worthless

Some people recommend to use projects with most stars. This is absurd. If a post (repository in our case) has more likes (stars) doesn't mean that it's good, it means that more people like it. Same goes for tags.

Also, this creates problems for new projects. Because home pages are flooded with those overstarred projects, no one would looks further and find something new.

How not to Open Source like a Pro.

Walled garden design

Drew DeVault's article covering this.

Github's contribution method is terrible. But new developers accept it because “that's what everyone uses”.

On Github when you need to make a contribution to a project, you need to:

  1. Create an account
  2. Fork the repo
  3. Push your changes
  4. Create a pull request upstream and wait for maintainer to merge it.

This keeps you on Github and gives them more centralization power.

But the same idea was copied by Gitlab, then by Gogs. And after that we got Gitea which is a fork of Gogs but they didn't change this model.

Together with that, using PRs/MRs model only wastes contributors' time. I can send ten patches to different projects while you would only finish your first pull request (more on that later).

Solutions?

So, if Github is so bad, what are the solutions?

The solution is simple: Email.

I know, some people think that Email is trash and ancient technology (they mean for 1-to-1 chats) but for things that will be public anyway (bug reports, patches) Email works great. It's an open standard and is federated which automatically prevents vendor lock-in.

The platform I was enjoying in the last few months is Sourcehut. It embraces Email for almost everything especially if you don't have an account. File a ticket? Send an email. Contribute to a project? Use git send-email. If you have an account, there are web UIs for that, don't worry.

Switching to email should also fix common bad practices: top-posting and HTML emails.

A: Because it reverses the flow of the conversation.
Q: Why you don't like top posting?

HTML emails are bad, they are used mostly by advertisers, full of trackers, have accessibility concerns and finally, there are a lot of vulnerabilities in clients. Features like text formatting and inline images are not worth that.

Please use text/plain for email.

Sourcehut flow

Remember the Github workflow above? Now look at how it works with Email:

  1. Clone the repository
  2. Make your changes
  3. git send-email HEAD^
  4. Wait for maintainer to reply.

And also, Git was designed to work like this. send-email is a built-in feature.

For tickets on Sourcehut it's even simpler: just send an email to ~user/tracker@todo.sr.ht and you're done.

Resources