|| ||Ryan Phillips <rphillips-AT-gentoo.org>|
|| ||Gentoo: State of the Union|
|| ||Fri, 28 Apr 2006 10:14:53 -0700|
This is a follow up to Mark's (halcy0n's) thread regarding QA Policies and
seemant's letter on herds, teams, and projects.
I believe the way Gentoo is doing things is broken. There I have said it. The
entire project has reached a level of being too political and trying to solve
certain problems in the wrong way.
Some of these problems are intermixed. Please consider them starting points
__Problem: Developer Growth__
I find that developer growth as being a problem. Adding a developer to gentoo
should be as easy as 1. has the user contributed numerous (~5+) patches that
helps the project move forward. If yes, then commit access should be given.
Adding a developer is usually quite a chore. There are numerous reasons why
this is a problem: having a live tree, taking a test, and not defining within
policy when a person could possibly get commit access.
All these reasons leave the project stagnant and lacking developers.
Why do people have to take a test? Is it to make sure they won't break the
tree? If it is, then the solution of a test is wrong. We do want to make sure
our developers understand gentoo, but I argue that the bugtracker is all we
need. As long as a person is adding value to gentoo and they have "proven"
themselves, then they *should* have commit access.
Perhaps its because of a live tree...
__Problem: Live Tree__
Having a live tree requires people to be perfect. People are not perfect and
requiring it is ridiculous. I love having commits in my local tree within the
hour, but having a stable and unstable branch makes a lot of sense.
CVS doesn't do branching nor tags very well...
CVS is one of the worst application ever created. The portage tree needs to
move to subversion. A lot of the problems within the project would be solved
by using a better SCM system. The previous problems regarding the Live Tree
and Developer Growth would be solved, IMHO, by just switching. Branches Work.
Tags Work. Reverts work. Moves work. I don't see any reason not to use it.
It just plain works.
Projects (gentoo/bsd, embedded, hardened) could choose to keep their own
branches of the portage tree and merge with trunk as needed. Projects could
stick to traditional solutions like profiles if they so wished.
Some will probably ask who will merge between branches. We can do that easily
ourselves. If I think a package is good to go, then svn merge -r1123:1124 to
Huge projects like Apache, GCC, and KDE already use SVN.
__Problem: QA Policies__
It seems that the QA Policies are a product of a Live Tree, and going partially
non-live would solve the problems listed.
Everyone here is on the same team. There will be some breakages in the tree
and those can be dealt with. Like Seemant  said, herds are just groups of
like *packages*. The QA Policy is wrong when it says cross-team assistance; we
are all on the *same* team. The tree should naturally work. If it doesn't
then that is a bug for all of us.
Conflict resolution should not be a subproject. It should *not* exist at all.
Rules need to be in place to avoid conflict. Having some sort of voting
structure for all the developers (this doesn't mean requiring everyone to vote)
and not just the council or devrel makes a lot of sense for most things. If I
don't like how someone is acting within the project there should be a vote and
then see if that person is kicked out. No trial, no anything besides a vote.
And if I lose I have to deal with it. Either stay with the project, or find
something else. This solution just works.
Gentoo should be a fun environment. The previous paragraph should be taken as
a last resort.
I dislike GLEPs. Usually they sit on the website for a long long time not
doing anything. My vote (+1) is get rid of gleps and do everything by email
and a vote by the developers. AFAIK, the board votes on the GLEPs. Bad Idea.
It stifles things from getting done, and there is no ownership of who is going
to implement the idea.
A new idea proposal should be mailed to a mailinglist (-innovation?) with
details of timeline to completion, impact, and who is doing the implementation.
If it sounds like a good one, then there is a vote and things proceed. I like
Gentoo has over 200 developers. People are generally against the voting idea,
but I'm not sure why. I think voting should work like this: if 30 developers
(or someother specified number) vote yes to an idea then that idea passes. It
doesn't require everyone to vote, be at home, be on the computer, and not be on
The Apache Foundation already has a decent page regarding this:
The Apache Foundation has over 1300 developers; they must be doing something
If someone misses a vote, too bad. You weren't there and progress has been
made. I equate this to leaving on vacation from work. My input is missed
while away, but decisions have been made in my absence.
What is interesting is that Source Mage Linux has already voted on a proposal
similar to mine. I truly think that making some changes in the "gentoo way"
would benefit us and make gentoo a truly better distribution.
to post comments)