I want to take the opportunity to discuss something we don't talk much about with FOSS: the *guarantee* of freedom vs the *option* of freedom.

This shows up in all kinds of interesting ways, most directly in how projects are set up, licensed, and governed.
If you work with a lot of "cloud-native" software, you often wind up seeing projects in a foundation, requiring CLAs, employment disclosures, but most importantly: the projects are always under licenses like Apache-2.0.

These projects *offer* freedom but do not *guarantee* it.
This is contrast to a lot of software outside that space (e.g. desktop and regular server stuff). Projects tend to be more organic and often use licenses like LGPL or GPL.

These projects *guarantee* freedom to sustain themselves because they cannot rely commercial interest.
Lately, it's become in vogue for small projects to favor the "option" of freedom for adoption instead of the "guarantee" of freedom.

If your project isn't complex enough to motivate consumers to contribute back and help sustain it, this can backfire.
If it's easy for consumers to make and maintain private changes without sharing them under the terms they were granted, they often will, especially corporate consumers.

Often this is because it's too hard to get grants to release improvements for permissively licensed projects.
Most folks these days have a decent understanding of their rights and obligations, and generally if they're consuming a useful project, they will exploit their privileges to the furthest extent they can. This is how we get debacles like the one with Elastic, Redis, and others.
If your goal is to guarantee the long-term existence and advancement of a project, carefully consider whether you want to forego the requirement of *guaranteeing* freedom.

If you look at the longest-lasting projects with real stamina, most are set up to guarantee freedom.
While there are obvious exceptions, those are often due to extenuating factors (outsized complexity, charity ownership with strict governance, etc.).

Most that don't have those (like desktop Linux projects, for example) are deliberately set up to *guarantee* freedom to all.
In the end, it's obviously about which trade-offs matter to you.

But, in order for FOSS to be long-term sustainable, we need to make choices to encourage the code to live on, no matter *who* works on it at any given time.

So please think of this carefully.

--- @Det_Conan_Kudo
You can follow @imakefoss.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.