This section describes the ONOS development process, how to contribute as a developer, and how a developer is promoted to a committervarious aspects involved in code contribution to the ONOS project.
Table of Contents | ||
---|---|---|
|
Reporting bugs
Creating tickets on JIRA : the ONOS project employs JIRA to track the status of various tasks.
Submitting patches
Writing unit tests and Javadocs : Naturally, code contributions almost always include writing unit tests (JUnit) and documenting the codebase (comments and Javadocs).
Don’t break things: Sanity checking with Maven
- Guidelines
- Coding
- unit testing
- Code Review
- Sample Gerrit Workflow
Licensing and Contributor Agreement
Any code contributed to ONOS source must be released under the Apache 2.0 license, i.e. the licensing information must appear in the header of contributed files. The IDE setup section describes how to configure the IDE to automatically add the licensing information for two IDEs, Eclipse and IntelliJ.
In addition, code submitters must agree to the project Contributor License Agreement (CLA), based on that of the Apache Software Foundation. The CLA may be found here.
Guidelines
To maintain a level of manageability in the codebase, the project maintains a set of coding and testing guidelines.
Coding style
The code style guide can be found here. Many IDEs may be configured to take care of the formatting aspects of the coding style.
Unit tests
Any new classes or system components should be accompanied by unit (JUnit) tests. For existing code, any changes that do not alter functionality should pass existing tests; however, existing tests should also be modified to reflect any changes that alter the behavior of a class or interface.
All available unit tests are run as part of a full build process. Contributions should pass all tests and build successfully before being submitted.
Code Review
The ONOS project uses Gerrit for code review. Once submitted, a patch is inspected by core ONOS developersPromotion : With a good track record, a contributor may advance to core developer status.