Trying to get involved in an open source project can feel like a daunting task. This section provides some suggestions and pointers to make this jump smoother for those who want to get involved.
Submitting code as a developer is certainly a way to contribute to a project, but not the only way. There are many aspects to an open source project where contributors can help, including (but not limited to):
These roles are fluid - any work that modifies the system will need to be tested and documented, and documenting an aspect of the system or its usage may involve reading, running, and testing pieces of code so that you can understand them well enough to write about them.
First and foremost, anyone interested in contributing in any way should join onos-discuss. This is the primary mailing list for general questions and discussions. There are several other mailing lists that you may want to join, such as onos-dev for code contributors.
As one of its tasks, the project provides up-to-date tutorials for both users and contributors. In general, those interested in contribution should at least complete the Basic ONOS Tutorial, as it introduces many of ONOS's features.
In addition to the tutorials, the ONOS documentation set provides user, contributor, and architecture guides that delve into further detail for each respective aspect of ONOS.
The ONOS project keeps track of various tasks with JIRA. In specific, we maintain a category for tasks, labeled as "Starter", which have lower barriers of entry. These Starter tasks are intended for newcomers to the project that wish to work on existing material.
To find current Starter tasks:
At the search bar, enter labels = starter and assignee = null , and hit enter. This will bring up all Starter tasks that are unassigned. Each task has a name of format ONOS-[number] (ONOS-255 for our example). Selecting a task will display its details.
If you have a certain type of task you would like to work on, such as testing, you may also filter the search by epic name by appending "Epic Name" = <Epic>. For example:
labels = starter and assignee = null and "Epic Name" = Test |
Will return all available Starter tasks related to testing.
The available Epic names can be found by going to Agile > ONOS Scrum Board and then to Plan (1 in the left figure below) and clicking the Epic sidebar to the left (2 in same figure). It should display a list of Epics (categories), as shown in the right figure below.
|
Sometimes, you may be asked to file an new task/issue or subtask, based on a conversation you had on a mailing list.
To create a new issue, take a look at this page. To create a subtask from the Work view, click on a task, and in the side panel, go to the button on the upper right corner (...) > Create Sub-Task:
This will bring up a form similar to the Create Issue form described in the aforementioned link that can be filled out.
If you are working on a task, and are stuck, don't be afraid to ask questions - it's certainly in everyone's interest to move the project forward! However, please be sure to search existing documentations and mailing list archives before doing so, or the response you get may consist of a link to a page or something similarly terse. Likewise, If you have log files, or steps for recreating an odd behavior, attach or mention those to your question as well - Just saying "It's broken" without the specifics will just result in a response asking for those materials.