This is a preliminary etiquette doc for phpGroupWare. Please check it from time to time for updates: phpGroupWare is a large project, with possibly over 50 developers at the time of this writing. In its current location, it is impossible to restrict access for each developer to a particular module or application. As such, it is important that some basic rules be followed when developing in CVS: 1. Many of the developers, and all of the core developers, frequent the IRC channel #phpgroupware on irc.openprojects.net. Please take the time to drop by and introduce yourself. 2. If you want to begin some work on an existing app, please consult the primary developer for the application first. Most of the files will contain some type of identification and/or contact information in the head of each file. 3. If you are unable to contact the author, please contact at least one of the project leads (Seek3r, jengo, skeeter, Milosch, ceb) or a core developer. 4. Please see the coding_standard.txt document in this folder for some basic guidelines for code formatting. PHP can be interpreted in many forms, and this document outlines our preference to ensure readability and compatibility. 5. If you have just joined the project, or have always kept to your own application, etc., then please exercise caution when committing changes in the phpgwapi (the API), admin, and preferences modules. These can affect the operation of all applications. In particular, work done in the API is typically allowed only with prior consent from one of the project leads. In other words, work done here without some notification and authorization is very risky to your continued involvement with this project ;) 6. If you are working in the API, or on some other application which could affect the usability for users and developers, please be sure to fully test your changes. It is recommended that you visit a large sampling of applications to ensure that they still work as expected after your changes. This could include the functioning of one application or the API against mysql AND pgsql, at least. It could also affect the function of an application that uses LDAP instead of SQL for storage and retrieval. 7. Do not write table update scripts that alter content or structure of the API or of another application's tables. 8. When importing a new application, please verify that it does not conflict with another application. 9. Please do not import a new application that does not have some basic functionality in place or at least a description and basic documentation. 10. If you do not have an original icon for your app, please do not import a copy from another application icon. The API should insert a default until a new one is created. The size of icons should be 31x31 for all but the idsociety template. Do not put a 31x31 color icon in the idsociety template. 11. Basically, all template files are located in the app_name/templates/default/ directory. Please do only commit template files to other app_name/templates/ _layout_/directories if they _differ_ from the default version. The same is valid for images. All application images are located in the app_name/templates/ default/images directory. Please do only commit images to other than the default directory if they _differ_ from the default version. Most of the applications do not need other templates directories than default and idsociety. The idsociety templates directory should only contain the images dir with the navbar and navbar_over icon for the idsociety layout. Please avoid to have files twice in your application directory.