Rules to follow when using ImpressCMS SVN |
Subject: Rules to follow when using ImpressCMS SVN by marcan on 2007/12/10 7:17:21 Hi everyone, I would like to propose a few basic rules for all of us to follow when it comes to committing in the ImpressCMS SVN. This is a few rules I gattered from Dave_l post a few days ago. 1. Be informed of our discussions Every developer need to stay informed of our discussions here. So we all need to make a commitment of reading everything that is posted on the Current and Future release forums. It is the only way we can all work together towards the same goal, and bringing synergy in our efforts. 2. Documenting our code That means that every function has a phpDocumentor-compliant header comment, which is both correct and understandable, states the purpose of the function and describes the parameters and return value. The same applies to class properties. The header comment for a function (or a class) is intended to be a "mini user manual" for the function that provides all the information needed to call that function, without having to examine the body of the function. 3. Use our trackers for nearly everything Use the ImpressCMS trackers for everything you do. Bugs, Features, Tasks, everything. For example, adding the Multilanguage features needs to have a task related. Same thing for the security audit or the removal of the XOOPS word all around. 4. Create 2-ways links Create as many two-way links between Subversion changesets and ImpressCMS trackers as possible: - In your commit message, refer to the tracker item ID. - When you edit the tracker item on SourceForge, refer to the revision number of your commit in th SVN. 5. Commit logical changesets When you commit a change to the repository, make sure your change reflects a single purpose: the fixing of a specific bug, the addition of a new feature, or some particular task. Your commit will create a new revision number which can forever be used as a "name" for the change. 6. About branching We will use the "Branch-when-needed" system : - Users commit their day-to-day work on /trunk. - Rule #1: /trunk must compile and pass regression tests at all times. Committers who violate this rule are publically humiliated. - Rule #2: a single commit (changeset) must not be so large so as to discourage peer-review. - Rule #3: if rules #1 and #2 come into conflict (i.e. it's impossible to make a series of small commits without disrupting the trunk), then the user should create a branch and commit a series of smaller changesets there. This allows peer-review without disrupting the stability of /trunk. Thoughts ? |