Commit Policy
These policies apply to all developers with an account on the development server including members in the osCommerce team and external members in development groups.
The goal of the policies are to maintain a sane environment developers can participate in and to secure the high standards and quality set for project releases.
Always Work On Your Branch First
When starting to work on a development version, a copy of /trunk/ will be copied to the /branches/ directory where the work must first be applied to. This allows developers to work on their own branches without interrupting the /trunk/ version, and are also able to keep up to date when other commits are made to /trunk/.
It is important to keep your branch and working directory up to date with the changes made to /trunk/ to avoid conflicts and compatibility issues.
Follow The Coding Standards
Please follow the Coding Standards throughout your development to keep the logic and structure of the code-base consistent.
This is especially important to keep the security implementations in order.
Maintaining Jira Issue Tickets
When the work involved is in regard to an issue ticket, be sure to assign the ticket to yourself and mark it as being in progress ("Start Progress"). As soon as the work has been committed for the ticket, close the ticket ("Close Issue") and assign the appropriate project version the work applies to ("Fix Version").
 | For the osCommerce (OSC) Jira project, please close the ticket first when the work has been committed to /trunk/. If the work depends on other work that is yet to be complete and will be committed to /trunk/ at a later time, please mark the ticket as "Resolved" and close the ticket when the work has been committed to /trunk/. |
Test Before Committing
Before committing the changes from your branch to /trunk/, make sure that not only do the changes work on your own branch but also on /trunk/. This can be best effective when your branch is always kept up to date with /trunk/.
It is also recommended to have a checkout of /trunk/ next to your own working branch directory, where the changes can be merged over to with the merge command to test before performing the commit.
When Ready To Commit To /trunk/, Get Confirmation Before Doing So
It is important for all developers to receive confirmation before the changes can be commited to /trunk/.
Members in the community developer group must receive confirmation from a member in the osCommerce Development Team. Members in the osCommerce Development Team must receive confirmation from another development team member.
When committing changes please do so in related groups and not on a per-file basis.
Be Descriptive With The Commits Made
Please be descriptive about the changes occurring in the commit message log. The changes described in the commit message should be understandable without needing to look at the differences made.
If you commit a bug fix or a solution to a ticket please reference it in the commit message log by its key. The format of the ticket key is: XXX-###, where XXX is the project key identifier and ### is the ticket number. For example:
 | Please note that tickets in the osCommerce (OSC) project should only be referenced when committing the fix or solution to /trunk/ and not in the per-developer branches in /branches/. This keeps the overview on the ticket system (Jira) clean and allows users to easily see the changes that have been applied. |
Take Responsibility For Your Commits
If your commit does not follow the coding standards, or breaks something else in the code base, take the responsibility to fix, or to help fix, the problem.
Don't Commit Changes You Don't Understand
It is important that the changes being committed can be supported and maintained by other developers, the community, and the team.
If an external solution or class file needs to be committed, please contact Harald Ponce de Leon (hpdl at oscommerce dot com) for advice on how to proceed.