Title: Development Process Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. [TOC] ### River Development Process
#### River build server River is built on the Apache Hudson server. The projects can be found [here](https://hudson.apache.org/hudson/view/M-R/view/River/). More on this process: [Continuous Integration](ci.html) #### 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 river-dev mail list. 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. It's also recommended that a summary/conclusion on the thread be recorded in the JIRA issue itself. #### Handling Security -related Issues There are three options associated with the "Security Level" field in the JIRA instance: * "None" * "Security risk, visible to committers" - only committers have access to the issue with this option set * "Security risk, visible to anyone" - the issue has a security risk associated with it, and the committers understand the impact. A resolution/fix has been developed. When a potential security -related issue is identified in the River sourcebase, initial discussion on it should occur on the private PPMC list. If the person(s) who identified the issue are not on the PPMC, they should be included in the discussion. If the issue is acknowledged as a valid security issue, a JIRA issue needs to be created with the "Security Level" field marked to "Security risk, visible to committers". As soon as appropriate (for example, when the impact is understood and/or there is a resolution/fix developed), the "Security Level" should be changed to "Security risk, visible to anyone" and an explanation/discussion should occur in the broader River community on the river-dev list. #### 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 Jini/River 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./trunk | |-------- /branches/2.1/ | \ | \ ------- /tags/2.1.0/ | \ | \ ------- /tags/2.1.1/ | \ | |-------- /branches/2.2/ | \ | \ ------- /tags/2.2.0/ | \ | |-------- /skunk/### Coding conventions #### Indentation Tabs are not used. Default indentation is 4 spaces. #### Other Contributors are advised to read the [Code Conventions for the Java](http://www.oracle.com/technetwork/java/codeconvtoc-136057.html) and try to adhere as much as possible to these conventions. #### Reformatting If the reformatting involves a large part of the code, a clearly labeled 'reformatting' commit in between is recommended. Keeping your reformatting changes limited, reduces the change of merging conflicts by your fellow committers. #### Older sources We do not actively search and reformat source files that are not formatted according to this convention. Older sources are best viewed with tab stops at 8 space intervals.| | |-------- /branches/3.0/ | \ | \ ------- /tags/3.0.0/ | \ | \ ------- /tags/3.0.1/