Hi,
Late to the party, oops! Everything in this email is my personal opinion, and I speak for myself not the project here. Just as Russ and Johnny dont speak for the project either in their emails, they speak for themselves.
On 08/06/2009 02:52 PM, Marcus Moeller wrote:
I recently started thinking about how to make a project like CentOS more transparent and open (especially for new contributors).
There are a lot of good ideas in your mail, Marcus - however some that are mis-aimed, not your fault, and maybe not taking the entire CentOS context in mind. But everyone of them put forward with good intent. The conversation that followed from there is also very interesting, some of it made me sad though. CentOS has been quite an experience over the last few years and I think a few things need to be put into context. Kai, if you dont want these emails, setup a filter for yourself or unsubscribe from the list for the duration of the conversation. Given the traction this has and the context of the conversation, I feel its important that it gets somewhere.
Anyway to kick things off, here is a bit of history to start with : CentOS started way back when..... We had no management, there was little or no direction and people didn't care much about things. A few of us ( mostly Johnny and me, to be honest ) took up the task of fixing stuff and making things happen. And because we used it and because we were able to[1], it was the norm spending the 36 hrs /week on the day job followed by the 30hrs/week on the CentOS 'job'. Its pretty much stayed like that for years, when Ralph and Tru got involved with the infrastructure side of things and Ralph took up the additional task for 'being chief executioner' on the wiki. Tim has been an even more recent addition to the 'team'. And this is even before we start talking about the distribution. Most of us do other things as well, like help and work on building a distro[2], Some of the people on this list might have heard of it. One of the important things to keep in mind is that CentOS hasent been an accident. We had decided very early in the lifecycle ( Jan 2005, I still have the logs from the conversation ) that we would either do things the right way, or not do them at all. I guess that paid off long term, even at the cost of personal loss ( I've lost count of how many times people have called me all sorts of things ).
So, effectively late last year, we decided that things were getting a bit mad and something had to be done. And we setup the infrastructure group to keep things moving along while we looked at options and also tacked other issues, which needed attention. Much of whats been going on recently in terms of the 'project issues' with the media is negative spin to what I'd say is a good thing for the project. We are at a stage where we can restart, with much hindsight and a clearer idea of what needs doing and how it needs doing. We also realise that while we made mistakes along the way (eg. the QA Team ), somethings we did get right. So let me lay out what I'd consider an ideal situation that we can build on from here. Remember, that this is my personal take on things. Much needs to happen before some of these are even considered.
The first thing that we need to do, all of us, is step back a bit and see exactly what CentOS is. I think about 80%(guess) of the contributors to the thread already, dont seem to know or prefer to ignore it as they foster a deam of something wildly different. Anyway, whichever way you spin it - CentOS is about the people. The people here. Its not about the distribution. Its not about any 'team', its not about the infrastructure or the means for the infrastructure. Its a group of people, who all use/abuse a common code base. Therein lies my take on what is the 'C' in community. I'd be happy to clarify and explain ( although Smooge and Mike already do a great job of that ), if anyone still cant 'get it'. CentOS, in its early days was about the optional setup to EL, in the last few years its become about the people. Even if you dont agree with me and try to spin it otherwise. At the core of this group-of-people is a codebase that we dont change, we dont edit, we dont 'develop' on[2]. Look at the wiki, look at the forums, this list, look at the companies who base their products on CentOS - and you will see this community. People who 'get it', and are offering to help others 'get it'.
So, I think lets start by first defining what it is that the 'CentOS Project' stands for. Johnny already pointed people at the website and whats on there. I think now would be a great time to redefine that into a real 'charter' or a 'mandate'. Having said this, I also realise one thing that we got really wrong was calling people 'CentOS Developers' and others 'the Non Developers'. A more apt name for these people would be 'administrators' ( or even something else ). These are the people who keep the 'stuff' working, they 'facilitate' the community. They are not the community or even try to be them. We got it wrong. Lets fix it now.
Fix what ? Well, for one - a contributing community needs to have something to contribute to. Also, as I said earlier, the community is the people, and they are people based around a shared interest in a common codebase. A codebase that is essentially open source. So the ability to expand and promote that codebase should be something we can 'facilitate'. A process would need to be defined, and I am sure there are enough people around who can help with that process definition. But once its in place, I see no reason why it cant be done.
Exactly who gets to make the decisions that would then in turn influence the whole userbase ? One way would be to have everything churn through a mailing list and have everyone contribute a voice. Something that works well in some cases ( package policy definition would be a good example !), and in other cases thats a really bad choice ( are we going to use machineX for DNS or a torrent seed ). Most users dont care as long as a 'reasonable expected level of competence' goes into making these decisions. And these are the sort of decisions that need to be made within a specific user group. Could they be done in public ? I am sure some can. while there are plenty which cant. My point here is that while there are some things that can really go into a circular route and stay open ended, others cant. And this is where I feel a 'admin/core/infra' team fits in. The list of people who work within this team should also be mentioned, but all contact and work / requirement work done through 'role' accounts actively discouraging personal contacts.
Similarly, I feel we need to have a 'control group'. Someone who can look at issues like donations, management of funds, management of any centos branding and also be the focal point for the promo efforts[3][4]. A group that is built initially from the existing core group and initially atleast, based around an invite only process. However, this group should be put into place with a reasonable transparency process in place. Exact extents on this and the mechanics of how this would work is something that is still pretty much in the air.
Anyway, so where does this leave the 'developer person'. As I see it, anyone 'doing stuff' on projects.centos.org should be able to call themselves a CentOS contributor. Anyone doing anything else can call themselves whatever else they want. So where does this leave the 'build people' ? I'm going to propose that the build-group/ key-holder group stays small, invite only. However, let people from the community have a mechanism to help with the process. Remember, the action is not going to be in signing packages, its in making sure that things are doing what they need to do. What I am also going to propose is that the infrastructure for this stays where it is. We have major wins in keeping the buildsystem offline, not only the security part - but also the wins we get in manageability are worth a lot. Besides, mock hosted builds local to where the contributors want to be are trivial these days. Also, with the keys - we dont even need all the people doing builds to hold keys. There are, as most people know, issues within the way things are pushed out right now. Packages that should take a few hours or even a day sometimes, take a much longer time to get there. And this is a very real problem and something that needs addressing right away.[5]
I just want to finish this brain dump off by saying that there is no reason to panic, we are changing things and we will change things in the long term best interest of the project. Exactly what we change and how and why and when would be things that I will attempt to bring into a place where there is plenty of option for user feedback. And feedback, before things change up. End of the day, if we cant convince the users about what we are doing as being in their best interests, perhaps were doing things wrongly - and we should take that on board.
- KB
[1]: Not easily, but we made the efforts. Just as the other guys do now as well. [2]: I have a few ideas on why only idiots merge 'development' and 'distro' into one set. Will collect and post those thoughts elsewhere. [3]: This needs to be extremely transparent, and the idea of a foundation does sounds very enticing. And is being actively pursued at this time. [4]: the 'promo' group again is something which we got the naming for quite wrong. its more of a 'conference' group. [5]: there are other things that need attention as well, but changing too much at one go, specially with the build setups is going to break way too much. so one problem at a time. If you are interested in helping, track centos-devel list for a few weeks