I agree with Rules 1-3, and would like to propose another one:
- Rule #4: All committed code must be fully documented.
In part, 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.
I suppose this won't apply to existing code that you're modifying and don't understand well enough to add missing documentation. Ideally we could review it and figure out together how to document it, but time may not permit that.
Forgive me if I don't join you guys on IRC. I've only used it a couple times and that was over 4 years ago. I don't know enough about it or trust it enough to open my firewall up for the protocol.
You know how to reach me if there is something important you need me to help with.
I suspect this section of the SVN book may help, but I'm not sure how to apply it: Ignoring Unversioned Items
I really suck at NOT committing my own mainfile. Can you help me here. What is the best way to avoid that ?
Also, do you guys have some problems sometimes with the cache folder when SVN updating or SVN commiting.
Thanks Dave, excellent link.
I suggest every one involved in coding should read this bes practice summary.
So I now realize that XOOPS was using the Always branch system and I understand now that it has pros, but I feel more cons...
I very like 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.
Can we all agree on this ?
The next thing we will need after the logo is a theme for all these sites :
I would like to see only 1 theme for all these sites but with only a small variation to let the uer know where he is. A "site bar" navigation would also be great.
In fact, I think you guys already did that concept for the xoopsfoundation.org and other sites.
The only SVN repository we are using now is the ImpressCMS SourceForge Project's SVN Repository.
The URL to enter in TortoiseSVN is : https://impresscms.svn.sourceforge.net/svnroot/impresscms/
You can browse SVN here
I propose we use the Trunk to hold latest stable code. We develop everything in branches or tasks and every time a feature has been tested and revised, it gets merged to the trunk. That way, our trunk always stays as much as possible workable. Early adopter users can use the trunk to test the latest edgy-but-tested stuff...
For now, I suggest we directly develop in the trunk until our first release.