As ONOS is a multi-module project, it may appear as a collection of many (about 50 at the time of this writing) projects beginning with "onos-". This is normal for some IDEs such as Eclipse.
If you're using Eclipse and see "Plugin execution not covered ..." errors about jacoco-maven-plugin and onos-maven-plugin after importing ONOS projects, follow these steps to eliminate those errors.
The formatting followed by the project are:
- Indentation using four spaces
- No trailing whitespaces, including in empty lines
- Spaces after keywords such as
while, and casts
The whitespace formatting, among other code styling, is enforced via Checkstyle, which is run against the code during each Maven build. The build will fail if formatting violations are found.
The full guidelines are found in the Code Style Guidelines.
Prior to contributing code to ONOS, all developers should set-up their IDE to appropriately tag the code with the Apache 2 license header text. The bare text is checked in under tools/dev/header.txt, and the original can be found at:
Example: Copyright setup on IntelliJ
First make sure that you have the Copyright plugin enabled. Then, under Preferences, select Copyright section and create a new Copyright profile, call it something like Apache 2, and prime it with the text above, without any decorations. Then configure your copyright formatting options as shown:
Example: Copyright setup on Eclipse
Configure the Comments for Files similar to the following.
Remember to put a check on "Automatically add comments for new methods and types" to apply these templates on new files.
There are two ways to clone the code from Gerrit, https:// or ssh://. Either way is fine for reading the code, but when it comes time to contribute the easiest and most secure way is to access Gerrit over SSH.
<username> with your Gerrit/Crowd username. You can double-check the URL on Gerrit by logging in, going to Projects -> List, then clicking on 'onos', On the grey bar, click 'SSH', then just underneath the grey bar will appear 'git clone ssh://...'. This is the URL you should set your remote to in your local git repository.
Prospective contributors should configure their account to receive notifications about their code submissions. The Settings page is accessed from the user dropdown on the upper right of the page:
As shown above, email notifications are also configured from here by checking off the types of notifications to receive.
Uploading SSH Public Keys
An SSH key should also be uploaded to the ONOS Gerrit server.
|A key must be uploaded per host if checking code out to multiple hosts with |
Developers planning to contribute code should configure git with their username and email.
If you're using a Mac, you may need to manually upgrade the git-review package dependency. (git-review bug#1337701)
$ sudo pip install --upgrade setuptools
Building API Docs
To build a local set of the ONOS Java API documentation bundle, use the
onos-build-docs utility, which uses Maven to generate both internal and external documentation.