[CentOS] CentOS Project Infrastructure

Wed Aug 12 23:36:44 UTC 2009
Karanbir Singh <mail-lists at karan.org>

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

-- 
Karanbir Singh : http://www.karan.org/  : 2522219 at icq