Skip to main content
Huy's site

Contribute to decentralized hosting service

So, a few days ago I’ve had a conversation from my Pleroma account concerning SourceHut and git hosting in general. Original thread here.

So in short, OP wanted to move out of GitHub, for some reasons, probably because it is:

  • centralized
  • non-free1
  • hosted by Microsoft
  • have been hostile to developers
  • exploit free software2

How ironic, because free software developers use a non-free service for development, which is a centralized service that wraps around a decentralized protocol.

Decentralized hosting

Let’s ignore that thread for a moment. If you want to avoid GitHub (and you should), there are two solutions:

  • Use some other hosted instances, like codeberg.org or notabug.org
  • Self-host your own instance, using free software like gitlab, gitea, or even a barebone git server like cgit

But this decentralization introduces a (not) new problem: how to contribute to another project, when the project is hosted on a different instance than yours? There are three options:

  • Create yet another account to contribute
  • Meh I can leave them be
  • Make a pull request

But how do you make a pull request without having an account there? If you clicked on the link above, you can see how:

  1. host their clone somewhere publicly available—could be anywhere
  2. push up a branch with the change
  3. contact you via email or slack or whatever to “request” that you “pull” the changes in that branch/remote
  4. feedback/discussion continues out of band, contributor can push updates to the branch, you can pull them down to review
Illustration of how it works

In fact, this is described as one of the common workflows for git and is what happens behind the scene in GitHub pull request (except a GitHub PR pull directly to maintainer’s remote and the remotes must be hosted by them).

Mailing list workflow

It is reasonable to assume everyone has an email. After all, most services require emails for registration, and more importantly, to git commit you have to set an email value. On the contrary it’s not reasonable to assume someone have a GitHub account. Therefore, it makes perfect sense to accept contribution via email, regardless of your hosting service or main contribution model.

Without an explicit instruction, the contributor can find the maintainer’s email address via git commits. However, this raises a problem: the communication is private. Thus, a public mailing list is important for an open atmosphere.

SourceHut makes this easier: it provides mailing lists that you can use for issue tracking, discussion, and contribution. It is free software, and works without JavaScript, which provides a clean and lightweight UI, though it might not be as eye-catching as some people expected, but that’s subjective.

I am aware that one of the project maintainers had (have?) been rude towards others inside the free software community, and therefore many people wouldn’t want to support him. However, the project is free software and licensed under an AGPL license, which means you can:

  • self host your own instance
  • maintain your own fork so you don’t have to depend on them

And if you really don’t want to use anything associated with him, I’d still hope you would host a mailing list for your free software projects. Let’s keep the free software development stay away from proprietary platforms and keep it decentralized!


Disclaimer: I’m not affiliated with codeberg.org, notabug.org, or sr.ht


  1. I know services can’t be free or non-free, but I still use it in the sense that the application that runs the service isn’t free. ↩︎

  2. The most recent example is Copilot, which mass-exploited free software for training a code-generating model. ↩︎


Would you like to discuss this post? Email me!

Fediring

Look at my fedi fellows' sites:
  1. Previous site
  2. What is Fediring?
  3. Next site

Articles from blogs I read

A Hare code generator for finding ioctl numbers

Modern Unix derivatives have this really bad idea called ioctl. It’s a function which performs arbit…

via Drew DeVault's blog May 14, 2022

Phone-tracking companies tracking military and intelligence personnel

Two US phone-tracking companies showed they could track military and intelligence personnel of …

via Richard Stallman's Political Notes May 13, 2022

GCC 12 Becoming Default Compiler in Tumbleweed

More than a month after preparing the default compiler for openSUSE Tumbleweed to be switched to GN…

via openSUSE News May 13, 2022
Generated by openring