What is a Community?

This week Mike McGrath started an interesting flame war here which asked us all the very interesting question: What is Fedora's Market. This of course led to the usual affirmations that Fedora is 'bleeding edge', 'for the hobbyist/tinkerer', or really just for the person who wants to do new and exciting things. Today however, I saw a funny blog post by Tom Callaway, on his efforts to introduce a new feature in Fedora that allows people to track packages by license. Unfortunately for Tom, and my heart goes out to him, his idea was shot down a bunch of people whose response was to "Whine, Bitch [and] Moan." I had also been reflecting on how Con Kolivas is no longer writing kernel patches.

This had me wondering at a second and even more nebulous question to ask.

What is a Community?

Growing up, I had the fortune to live in a jewish community that talked about the morals of building a community through religion and social exercise. People always commented that my high school class was amazingly unified between all the different levels of classes socially, and there wasn't this stratification of who belonged to the 'smart' classes or the 'dumb' classes. At the same time, I would go home to see my parents and family integrated, but looked at funny because we had ever so little less money than our neighbours, and were ever so stranger than they were. So if you asked me what a community is, I would say right out that it's a group of people that align themselves together based on some common bond. Well, it's not necessarily an open community.

An open community, however, is an entirely different breed. It's a group of people that are willing to accept anyone regardless of who they are other than their desire to participate. It certainly has been a mantra of the Open Source development style. It accepts anything, and everything, and of course, if you can't keep up, you sink underneath the mess. If you manage to stay afloat, you're rewarded with the best of the best software available to mankind. This is also the bazaar style development, or in some cases the bizarre.

There are of course always the closed communities, which in the software world leads to cleverly, but cleanly architechted software. Even when they are open source, there is certainly this base hierarchy of being either in the inner sanctum or pond scum. Oddly enough, this has actually been Red Hat's model for years, and continues to be that. They take what they like, polish it into first RHL, now RHEL and friends, and then return as much source code as they can back to the community. Red Hat has been very clear about who stands in their community, and who doesn't, and it all starts with a paycheck.

Fedora is going through an interesting transition though. For six versions, it's been a closed off effort, courtesy of Red Hat, whereby the only people that could directly contribute were Red Hat employees. However everyone started realizing that outsiders could make better packages than Red Hat, and eventually Fedora was opened up. Cool! But now what? I'm hesitant to bring in other distros into these sorts of discussions, since they eventually turn into flame wars, but let me give you an abridged list of "Open Community Distros" (by my standard of course ;): Debian, Gentoo, Ubuntu, and *BSD (generally speaking). These are the best models to look at if you want to understand how an Open Community operates. Well, *BSD's aren't really open, the rules to submit patches and have them accepted are strict. Ubuntu and Debian have that crazy MOTU and NM processes, and Gentoo seems to have lost it's wind. Not than anyone is perfect of course. But one thing that these distros are good at is accepting all sorts of ideas, incorporating them, and weeding out the bad ones. (Yes, I do know *BSD is not a 'distro').

One of these distros has a little funny document called the Debian Social Contract. This is the defining document for what constitutes the basic foundations of the distro, and the community that surrounds it. From that came out a rock solid distro, that serves practically any need one might have from Linux. You can call it overkill if you want, but to be quite honest, I enjoy Fedora development more working inside Debian than I did on Fedora.

So in response to this ugly trend I've been noticing where people are getting shoved out of the Open Source community, and feeling left out, I want to propose the start of a Fedora Social Contract. (Disclaimer: I have read the DSC (the Debian one) before, though it's been a couple of years. I haven't read it lately, although if this catches on, I will of course read it for inspiration. I do not want this to turn into a clone of the DSC, although if it does, I think it means that the DSC is a very well written piece of fine bathroom literature :) ) (Second disclaimer: I enjoy reading in the bathroom ;) )

So without further ado (except this one: ADO!):
1) Fedora is open source and an open community
2) Everyone is welcome to voice an idea, and everyone is welcome to say no. The Fedora project is of course neutral. Implement your idea.
3) We are part of a larger community, participation in this one implies participation in the larger one as well.
4) Therefore, everyone is welcome to submit changes, fixes, improvements, anything they wish to see. Provided it's technically feasible, we will make your submissions available for evaluation by the community. This is not a guarantee that it will be submitted to a release.
5) If one other person finds this feature useful, the submitter will have an option to submit it in some way to the Fedora Project, should there be an objection greater than the desire for submission (and a lawyer will hate me for that last sentence ;)), all efforts will be made to ensure that the submission remain optional, and not installed be default.
6) To ensure that we provide a quality distro, there should be a core set of packages that have been approved by people trusted by the Fedora Project to this purpose. The term core packages can imply 20,000 packages if we ever had that much time on our hands. For a submission to pass this review, it must meet quality standards (not limited to proper package naming, quality of install scripts, likelyhood of the package destroying the universe being minimal, etc...), however, so long as it is packaged properly, it is up to the community to decide if they wish to use it.
7) Should the submitter, or an heir to the package leave the project, only then is the removal of the package from Fedora up for discussion. If members want to see a package in the distro, they have to do the work to make sure it stays there.

I'm sure there's plenty more that can go there, but they would probably be elaborations on the same thoughts. I'm also sure there are plenty more social contract type clauses that would fit, and I just haven't thought of them yet. Anyways, I make them available via the Creative Commons if someone else would also like to write a social contract. I'm sure I'll have plenty more to add by Monday.