Title: Development Process
# *DRAFT* OpenJPA Development Process
## Tracking issues and changes
* A JIRA issue is required for any substantive change.
In order to keep the list of JIRA issues under control, it is expected that
any controversial issue or user request for a feature or design change be
discussed on the dev list prior to entering it into JIRA.
* JIRA issues are not needed for small (e.g., typos) changes.
* Issue discussions
The preferred place of discussion on issues is the JIRA created for the
task. If discussions occur on the dev list outside the JIRA, a link to the
beginning of the mail thread on the issue should be placed in the JIRA
issue so that users looking through JIRA can easily view the thread of
discussion on an issue. Please keep the Subject line the same so that the
email thread hangs together. If discussion occurs on the dev list, it's
also recommended that a summary/conclusion on the thread be recorded in the
JIRA issue itself.
## Code Reviews
* for public API changes:
[RTC](http://apache.org/foundation/glossary.html#ReviewThenCommit)
These changes have potentially broad effects on developers and users, and
therefore will require a code review and vote. Since some of these changes
will affect the API docs ('specs'), everyone within the community is
encouraged to review and vote. The Committer votes are binding, but the
sentiment of the entire community will be strongly considered.
* for all other changes:
[CTR](http://apache.org/foundation/glossary.html#CommitThenReview)
Although CTR is what is specified, developers should feel comfortable
requesting the list for peer review before committing.
### Testing
* Developing test cases and running test suites are desired but not
required prior to an integration. If unit tests are created for a change,
the developer is encouraged to add them to the JIRA issue for sharing.
* When fixing a bug, it is strongly encouraged to attach to the JIRA a test
case that fails prior to the fix and succeeds after the fix is applied.
When the fix is committed, the test case should be committed as well.