Freedom of Association counts for your forge

In FOSS we love to focus on Freedom of Speech. We don't focus as much on the Freedoms of Association. Which came sharply into focus this summer.

The Preamble

Earlier this summer, the active members of Codeberg decided to take a stand on LLM coded projects. While you can donate to Codeberg, if you want to vote on Codeberg's policies, you must become an active member.

Codeberg has suffered in the past year from continual scrapers scraping their hosted repositories to build their language models.

It's also suffered from a series of spam attacks that use LLMs to spoof folks creating tickets. LLM generated spam has become a problem across our landscape. I'm regularly getting the uncanny valley of spam that takes close inspection to realise that it is spam.

Codeberg runs Forgejo, a fork of Gitea that is a fork of GOGs. It's forks all the way down. If you donate to Forgejo development, Codeberg is the fiscal host, but that money is earmarked for Forgejo development.

Codeberg is an instance that runs Forgejo. Much like chaos.social the instance I am on is an instance of Mastodon. Librecast still has a public mirror on Codeberg. So while we are not active members we are grateful to Codeberg members for taking this stand.

Who's Freedom is it anyway?

Codeberg is not Github and has never aimed to replace Github. To use a completely different example Mastodon isn't twitter. But there's a lot of folks who do seem to think of software being a direct replacement for other software when they had slightly different design goals.

The walled gardens of the 2010 seem to have changed folks expectations. The difference between those walled gardens and our community spaces is that the software those spaces choose to host isn't designed to take over the world and be a new platform. The point is for folks to build their own spaces and to chose who they allow in to collaborate with. They define their community rules as part of freedom of association. The walled gardens on the other hand claimed Freedom of Speech.

But who's freedom? Not ours. Community spaces aren't a replacement for Web 2.0 platforms. The software isn't locked up, anyone can contribute to it, and mostly there's not a bait and switch as with open core. The point is fully open collaboration.

Folks seem to be tied up looking for exact alternatives so that they and their friends can move en masse to the new thing.

Which is a little strange to me. But then being a Xennial, I grew up not being part of any worldview. I'm too young to be Gen X, and I'm too old to be a Millennial.

My childhood was analogue but computing was making it's way into my classroom via the BBC and Spectrum machines. I grew up with tape and then floppies loading the software. I started to learn Word and Wordperfect at the same time when I was temping as a secretary before I started my degree.

So the idea of one platform ruling overall for all time seems alien. I'm used to changing what I use. I'm a mutable person, I can't afford to lose that curiosity.

To be fair, I'm not particularly good at staying in one place either. I expect disruption, I know that all platforms are finite.

A tiny history

When GitHub started to do what all platforms do, people were looking for a new home.

Many had fled to GitHub from Sourceforge when it was discovered that Sourceforge was shipping malware along with downloads. People moved elsewhere, then git was created. In time we had GitHub, then GitLab and so on. Although people can and often do host their own GitLab instances.

GitHub is also a social network. A repository has metrics that can measure a projects success. There's that Gamification. But GitHub also had some community features like suggestions for codes of conduct. It's part of the reason why the Contributors Covenant became so popular. We'll leave aside for the moment the flip side of that. Gamification meaning that folks accepted a COC without understanding the values that went into the creation of those COCs. A Code of Conduct with no will to enforce it is worse than useless.

It's harmful.

Our Software Licences cover Freedom of Speech. A Code of Conduct defines the Freedom of Association in Safety. For a community you need both.

Code and Posts

Codeberg is an association that happens to be for hosting code and providing a space for folks to collaborate on. It takes some elements from GitHub. So of course some folks looking for a new home as GitHub went really sloppy chose Codeberg.

Codeberg has never aimed to be the number one platform to host code. It's easy to migrate to it. What's important is that you can also migrate from it, thanks to Forgejo and Gitea before it.

Codeberg will provide space for free, but it is supported by folks who pay. Folks who want to influence policy become part of its association. This summer, there was a proposal to ban LLM vibe coded projects. This was voted in by active members in July.

Some folks are rather sore and feel this is censorship. Again. This isn't a Freedom of Speech issue. The Active members of Codeberg have chosen who they want to associate with. They enforced their rights of Freedom of Association in Safety. Specifically the part of who they want to allow in a group. They don't want to include Vibe Coded projects and you cannot make them. They cannot be compelled to associate with your Vibe Coded projects.

I love this. A group of folks exercising their human rights in FOSS, it's awesome.

Folks often talk about the Paradox of Tolerance when it comes to hate speech. But Poppers Paradox doesn't directly address the idea of Freedom of Association in Safety. Perhaps because it should be obvious. You don't let Nazis in the bar if you want to protect free speech as given time, Nazis will endanger people as they seek to take away folks Freedoms.

The two rights are twinned. Free Speech isn't possible without folks being safe enough to associate and no one can be compelled to join the group.

I often see the censorship argument when folks are opposed to blocklists or the idea of archipelagos in the Fediverse. They see the sharing of blocklists as censorship and exclusivity. They argue it's a bubble and we should allow other points of view. Which misses the second part of Freedom of Association. No one can be compelled to join a group, and neither do we have to let anyone into our group.

But you cannot push Freedom of Speech without Freedom of Association. Which is what the XKCD comic is about but doesn't explicitly reference it.

But do you know what does explicitly references Freedom of Association?

Article 20 of the Universal Declaration of Human Rights.

Let me remind you:

Article 20

  1. Everyone has the right to freedom of peaceful assembly and association.
  2. No one may be compelled to belong to an association.

The members of Codeberg have chosen to exercise that right for their members. I'm not a member, but I am grateful to the members for doing so. We need bastions so we can have at least one place free of vibe coded projects.

Some folks may regret moving to Codeberg now. Some folks have even written about their upset with this. Again, this isn't censorship. It's not a Free Speech Issue. The members are stating their boundaries. Let me repeat myself again, this is a Freedom of Association issue.

You're free to leave, and find a community that works for you. It's the beauty of the Fediverse and of Forgejo based instances.

You can create your own space to host your cryptocurrency and vibe coded projects and collaborate together.

We won't stop you.

That's the beauty of Freedom of Association.

Community thoughts and a wish for accessibility affordances – @onepict@chaos.social