We try very hard to make sure all code complies with the webERP Coding Conventions
Procedure For Contributing
Contributions to the webERP project are encouraged - these simple procedures for doing so are aimed at reducing the confusion and co-ordinating the efforts of all contributors:
1. Join the developers mailing list.
Inform the list of your proposed developments and discuss the approach to be used. There are some knowledgeable people on the list and they can contribute ideas if you let them. Alternatively, there is a section on the webERP forum for posting development specifications for what you propose to do. This is also good to avoid overlapping effort or combine efforts in working on different elements of the same project.
A few points to remember about the mailing list and forum:
We have had our share of drama on the webERP mailing lists in the past and this has no doubt been damaging to the project. There will be always passionate debate between those passionate about webERP, but the goals and principles upon which webERP was founded will always under-pin the basis for the ultimate design decisions. Debate that deteriorates into personal attacks and dishonest statements about others will be moderated in future.
- Polite and cordial exchanges with good humour get the best responses.
- Please do not respond to an email if you are angry at what someone wrote. Email stays written long after you have calmed down and will embarrass you later.
- Email can be a little impersonal and whilst the information published on the list is very public we do encourage the use of first names at least in list communications.
- Commercial arrangements with other list members should be kept off list.
- Advertising of services should be limited to web-site information at the end of emails.
- A relevant demonstration of your technical knowledge that helps another user/developer or the project - is always appreciated.
2. Obtain the latest development scripts from SVN - see sourceforge instructions for anonymous SVN checkout the SVN files initially then updates daily - this only downloads any modified scripts, or update immediately before commencing any development.
IMPORTANT: Only do development work on the most recent scripts from SVN and update your copy of the SVN regularly.
Check out the latest svn using the following from the command line:
#svn checkout http://svn.code.sf.net/p/web-erp/code/trunk web-erp-code
Alternatively use Tortoise SVN or similar svn client and use the Tortoise SVN instructions with this URL for the svn repository
3. This point is relevant only for developers that do not have SVN write access. After any modifications to the scripts - email (only) the modified scripts (and ideally a diff file between the latest SVN scripts and your updated scripts use:
#svn diff > ~/mydiff.diff
and mail mydiff.diff to firstname.lastname@example.org within 12 hours of your last update from SVN. The project admin will have to digest the modifications and ensure the coding style is consistent, test the scripts and consider the implications of the modifications in achieving the goals noted above. Plenty of narrative explaining the modifications should be posted in the developers list so all can consider the implications. They will be committed to SVN as soon as possible after receipt and testing.
4. Where modifications span 10 or more scripts at the same time, request a stay on development from other developers using the list.
5. All submissions of modifications or additions should be accompanied by a plain text change.log file describing the changes to each script. This explains to everyone the nature of the changes made. Each entry in the change log should state the developer name and date of the change/addition. This file will be appended to the doc/change.log when the files are committed to SVN.
6. Requests for modification of the database structure - with an extract of the SQL required to effect the changes should be made to email@example.com These will be included in the version upgrage script as well as the latest database structure.