Hi,
As described in an earlier posting on this list (from June 16th) CERN has been
using Savannah successfully since last December. We would like to take active
part in helping to develop Savannah further and bring in the features we have
included up to now. For this we have been in contact with Mathieu Roy
(yeupou) from the GNU Savannah Development team on how to best organize the
cooperation, especially in respect to handling of the Savannah code on their
CVS repository.
We came up with the attached proposal and we would like to ask the other
developers, whether they agree to this or whether they have any
improvements/additions.
Regards,
Derek
--
Dr. Derek Feichtinger Tel: +41 22 767 26 98
LCG/SPI Group email: [EMAIL PROTECTED]
CERN http://people.web.psi.ch/feichtinger
CH-1211 Genève 23
Proposal for how to organize the coordination between GNU Savannah and
CERN Savannah Teams:
1. Develop an extended data base structure.
-------------------------------------------
Some new features require extending the Savannah DB, so an extended
table structure should be developed. This should involve a discussion
on the savannah-dev list, where other users can make suggestions
depending on their requirements. Changes to the DB should be made very
rarely, so it would pay off to invest some work into a nice design.
2. CVS organization
-------------------
To prevent conflicts in the code, we propose this organization:
- All developers use the GNU Savannah CVS repository. Access to the
GNU repository can only be granted by the GNU Savannah
Administrator(s). CERN team members sign up personally, i.e. a new
team member will contact the GNU admin to be signed up (in the same
way as the other Savannah volunteers do). No developer may use the
identity of another to do operations on the CVS.
- The repository trunk contains the GNU Savannah version. The latest
release should always receive a release tag (this will make it
easier for other developers if they want to send in patches, for
then they have an easy point of reference).
- GNU Savannah's current working model implies, that the CVS HEAD
version is always a working version (for now it's even the version
running on the main server). If release tags are introduced, the CVS
HEAD can be considered the latest release version + bug
fixes/updates to this release. Development of experimental features
should happen on branches. A user who checks out the sources without
specifying a tag should always get a working version.
- Since changes on the HEAD version may impact the GNU server, they
should mainly be made by GNU Savannah developers in charge of the
server (still, it may be safer to no longer use a cron job to
synchronize the actual version on the server with the CVS HEAD)
- The CERN Savannah team will make a branch based on the latest
official GNU Savannah release. New features (or if it can't be
evaded: CERN specific features) are checked in on this branch, so
they don't interfere with the GNU Savannah trunk. If CERN implements
changes which are considered bug fixes to the trunk, they are first
checked in on the CERN branch and this is then communicated to the
GNU Savannah team. They can then easily merge the impacted files of
the branch with the trunk.
- CERN and GNU should work together in merging the major changes (i.e.
new features) to the main trunk. One must be careful to not let the
branch diverge too far from the trunk. So, if CERN has developed a
stable new feature, CERN should initiate the merge as soon as
possible. Communication should be done via the savannah-dev mailing
list in order to inform all other developers.
Suggestion: For local development at CERN a local CERN CVS repository
may still be used. I.e. it may be preferable to not do all atomic
commits to the CERN branch on the GNU repository, but only to
check in stable CERN releases. Both GNU and CERN would then
follow a work model as laid out in chapter 13 "Tracking
third-party sources" of the Cederqvist CVS manual, with the other
party's version being the "vendor" version (a drawback of this
method naturally is that the atomic commit messages are not
carried over by this procedure).