To begin, we have to decide what the primary goods are. What is the thing we want, whatsoever else we might want. We can take for granted Rawls list (freedom of expression, etc), since we are scoping things down to our sustainable open source community. In its place, a reasonable statement of the primary good we want is:
We want the software to exist, to solve our problem, to continue to improve, and to be available for our use.
Since our primary good is software, it has the unique property of being infinite in amount. If we want more of it, we can simply… create more of it. This definition ensures we will not trade away our ability to be sustainable.
Now we need to apply the equal liberty principle. What are the rights we won’t trade?
It turns out that the Four Freedoms set forth by Richard Stallman (RMS) are a perfect fit here. (I suspect not by accident - I put the odds that RMS didn’t read Rawls in 1983 at slim to none.) They are:
By adopting the four freedoms as our foundational rights, we guarantee our community’s basic liberty. Regardless of our position in the community, we will always have access to our primary good. Anything less than the four freedoms and we could easily be in a position where we are locked out of the community. Where our basic desire goes unfulfilled. By agreeing to never trade away our four freedoms, we fulfill the equal liberty principle.
This implies that, to be sustainable open source community:
This could be a ‘copyleft’ license like the GNU General Public License (GPL), or a ‘non-copyleft’ license such as the Apache License. The specific license doesn’t matter - only that it upholds the four freedoms.
This is, of course, not quite enough. We want more than just basic liberty in our lives - the “whatsoever else we might want” part of Rawls conception of the good. We want prestige, we want influence, we want money, we want friendship - the list is long. Simply having the software isn’t worth much if we can’t ensure a long life together as a community. It may give us liberty, but it won’t give us fraternity.
Once we start injecting the other things we want into our community, we are going to cause inequality. We need to ensure that those inequalities meet fair equality of opportunity and the difference principle. To do that, we need to have a better understanding of what the positions are we might occupy in our community. What are the different outcomes of the dice roll that determines our fate?
This conception of community is an expansive one - it includes not only software developers, but anyone who has a stake in our community. How can we exclude the contributors who don’t write software? The venture capitalists who bring massive amounts of money to the table? All these are different aspects of the work involved in supporting the creation, evolution, use and extension of the software. We have to include them all, and as we discover new ones, include them as well. If we do not, we can’t be sure we’re evaluating our rules against a realistic field.