FOSS Engineers

Free software is not a license file. It is a trade, practiced in the open, by people who chose to publish the work instead of guarding it.

Most software is built to be sold once and forgotten. Free software is built to be read. A function is not just correct, it is legible to a stranger who will fork it at two in the morning for a reason you will never know. A commit message is testimony. A changelog is a promise kept in public, line by line, for as long as anyone cares to check.

What actually happened

1983

A public commitment to write an entire operating system and give it away, with the freedom to run, study, share and change it written into the terms. The GNU announcement.

1985

I consider that the Golden Rule requires that if I like a program I must share it with other people who like it.

Richard Stallman, The GNU Manifesto

1989

The GPL made a strange and durable move: use copyright law to guarantee freedom instead of restrict it. The license as an act of care, not enclosure.

1991

Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.

Linus Torvalds, comp.os.minix, 25 August

It became the base layer for most of the internet's machines, still credited to the people who kept sending patches.

1998

The term "open source" is coined and the Open Source Initiative founded. A pragmatic reframing, built to bring business into a room that had mostly been philosophical. The freedoms stayed the same. The audience widened.

2005

Distributed version control meant no project needed permission from a central server to exist. Every clone became a complete copy of the history. The first commit in git's own history:

commit e83c5163316f89bfbde7d9ab23ca2e25604af290
Author: Linus Torvalds
Date:   Thu Apr 7 15:13:13 2005 -0700

    Initial revision of "git", the information manager from hell

2008

The pull request becomes a social object. Contribution stopped requiring an account on someone's mail server. A stranger's patch could be reviewed, discussed and merged in public, by default.

2014

Heartbleed. A bug in a library almost every secure connection on earth depended on, maintained largely by volunteers. The world learned what unpaid infrastructure actually holds up.

2021

Log4Shell repeats the lesson. The same story again, in a different library. A small piece of free infrastructure, embedded everywhere, cared for by too few hands.

Ongoing

Sponsorship platforms, foundations and paid maintainership are still figuring out how to compensate the trade without changing what makes it free.

Read this once.

Copyright (c) [year] [copyright holders] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Anyone may use it. Anyone may copy it. Anyone may change it. Anyone may sell it. Keep the notice.

That is an astonishing thing to write about something you made.

Write for the person who inherits it.

Not the compiler. The person who opens this file three years from now with no context and a broken build.

Publish the reasoning, not just the result.

Review like the patch came from a colleague.

Choose a license on purpose.

Credit the maintainer, not just the project.

Someone left you a patch.

 function connect() {
-  retry(3)
+  retry(5)
 }

Connections are flaky on slow networks. Five retries fixed it for me.

You're the maintainer.

First contribution.
Submitted at 01:13.
Three lines changed.

Would you send the same review?

A week later

$ git log --oneline
7ab41f2  fix retry behavior on slow networks      them
e0f77b3  add backoff between retries              you

Their work is now part of the thing.

You may never meet.

The code does not care.

The history remembers both of you.

worthbuilding.org