Re: RANT!!! (was Re: ORBit and gint64 Re: ORBit gmake fails)

>How crazy am I?

Not crazy at all. Gnome is at point where something needs to be
done if it is going to get the benefit of all these energetic
potential contributors.

I have been on commercial projects where we have had these 
same problems and the solutions we used may help here.
They were difficult to apply but they worked. Here are some 
suggestions based on my experience:

1) Automate initial checkout and configuration. This is to provide
a single button first time checkout and configuration for those who want
to get started. This can be a package, a perl script or whatever.
What is important is that a newbie can just compile and run without
going through a long learning curve. This means that any dependencies
on external tools and libraries must be taken care of by this script.

2) Integration group. Only some small set of developers checkin to
the cvs trunk. Everyone else works off their own branch from the trunk.
The integration group is responsible for merging branches into the
trunk and checking in. The important thing about the trunk is that
it always builds, and it runs at least as well as the last tagged trunk
checkpoint. The benefit is that anyone who wants to get started on
a Gnome project knows where to get started. The downside is that
you don't get everyone's latest and greatest. This can also be
an upside :-)

The integration group lets people know when they are planning on
an integration. Then those who thinks their stuff is ready for the trunk
notify the integration group. The integration group may have to
make changes to the code being integrate because of changes
to APIs. This is normally done in cooperation with the person
whose contributed the code.

Once the trunk is functioning again, then it is tagged and the script
that automates initial checkout and configuration is modified to
use the latest tagged version.

If this sound like a lot of work, your right. It requires some discipline
and organization. But, in my experience, the benefits far exceed
the costs. 

When there is a large code base in flux, and their are
many developers who are contributing, these kinds of steps work
to enable everyone to be productive.

I am not sure how well this will work for Gnome as I have never been
involved with a Bazaar style project and I am new to the Gnome project. 
Maybe there needs to be adjustments or maybe even something 
completely different then my suggestions. What I do know is that we are
wasting the talents and time of potential contributors.

To get things started, I volunteer to work on item 1. I am clearly 
not the best person, but if knowledgeable people are willing to put
up with a bunch of stupid questions, then I can probably make
it work.


Martin Hess

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]