Nova/Mentoring

How to Get Involved
As the involvement process is pretty consistent, we've moved that information to the Developer Reference Guide. This page covers more in-flux items like who to contact and a rotating list of tasks that are good for new contributors.

Nova is a huge project with a lot going on, so don't expect to grok everything. You should pick a few areas to focus on while you're learning the lay of the land, or you'll get overwhelmed pretty quickly.

Team Priorities
The team priorities are documented per cycle at http://specs.openstack.org/openstack/nova-specs/#priorities

Attend the Nova Team Meeting
The Nova team has weekly meetings at alternating times to accomodate different time zones. Attend this meeting, or read the logs to stay up to date. Work items often come up that you can volunteer to take on, or at least offer to help the person who has volunteered for it.

The Nova meeting agenda and links to past meetings are posted at https://wiki.openstack.org/wiki/Meetings/Nova

Join a Subteam
Nova is a big project and we have several subteams that are focused on specific efforts. Each of these subteams has a weekly meeting. If you are interested in getting involved with a subteam you can either attend the weekly meeting or keep up with the meeting logs if the time is inconvenient for you. During these meetings, subteams might mention tasks they need done and if the task isn't ideal for a new contributor, you may be able to pair with a current contributor who can delegate work to you. You can also offer to help someone out with documentation or test coverage, for instance.

Each subteam has a primary organizer. If you can't attend a subteam's meeting to introduce yourself, reach out to the subteam's organizer or a member of the subteam working on the thing you are interested in, and introduce yourself to them.

The list of subteams is posted at https://wiki.openstack.org/wiki/Nova#Active_Sub-teams

Subteam Patches and Bugs
Subteams are encouraged to use this etherpad to highlight their priority patches and bugs for review: https://etherpad.openstack.org/p/rocky-nova-priorities-tracking

Attend the Project Teams Gathering or Summit Forum
Meeting the other contributors face to face is really helpful. Even if you are just starting out, being present during the discussions can provide a lot of context. Try to review items that are published in the agenda for these meetings beforehand so you have some context prior to going in. During the meetings, take really good notes and ask clarifying questions outside of the main discussion. After the meeting, summarize the keys issues in your notes so you can follow subsequent discussions. Pick some areas to follow reviews on and even if you don't feel comfortable contributing a +1, make sure you at least understand the proposal or the code change itself.

Who to Contact
If you have questions about the information on this page, please feel free to reach out to the PTL on IRC in the #openstack-nova channel.

IRC
Although people show as logged in on IRC they may not be available. When reaching out, you can either mention the person by name in the #openstack-nova channel or message them directly. When messaging in the #openstack-nova channel, please just mention the person's name and then ask your question. There is no need to do "hi" or "hello" to get their attention. If they do not answer right away, this gives others present the opportunity to assist you. If the person does not respond, you can message them directly and sometimes that will indicate their away status. If you still do not continue to get a response, then email them with your question.

Email
When emailing with questions about joining the team, the PTL can most easily assist you if you provide the following information:
 * What topic areas most interest you about Nova
 * Areas in Nova where you are most interested in contributing
 * Any other OpenStack contribution experience
 * Any other Open Source project experience (or if you don't have any, then please mention that)
 * Would this be volunteer work or is this part of a job expectation from your employer (ie, were you hired specifically to work on OpenStack or Nova as a developer?)

This is not a job application and you don't have to impress anyone. This information is just to assist in identifying project areas in the team that might be a good fit for your interests and experience.

Work Items for New Contributors
The following is a list of areas with projects ideal for new contributors to participate in.

Fixing Bugs
While working on bugs is a normally a good way to get to know a new code base, that can be really tricky in Nova. Randomly submitting patches for bugs without talking to anyone is probably the least effective way to contribute to Nova. Always introduce yourself to the Nova team on IRC in #openstack-nova and ask about a bug before working on it.

Picking up a Bug
If you find a bug you want to work on, first ask in the #openstack-nova channel before assigning it to yourself. This serves a few purposes:
 * Introduces you to the team
 * Announces your intent to work on a bug, so others won't work on it
 * Allows you to get context so your change is more likely to get approved

You can assign yourself the bug in 2 ways: 1) manually assign it in Launchpad or 2) submit a change referencing the bug ("Closes-Bug: 1234")

When you assign a bug to yourself in Launchpad, you have 2 weeks to submit a patch before you will be unassigned.

Recommended Tags
We use Launchpad as our bug tracker and bugs that have been verified are tagged to categorize them.

Here is a list of tags with bugs that might be good for new contributors:
 * needs-functional-test: https://bugs.launchpad.net/nova/+bugs?field.tag=needs-functional-test
 * api-ref: https://bugs.launchpad.net/nova/+bugs?field.tag=api-ref
 * doc: https://bugs.launchpad.net/nova/+bugs?field.tag=doc
 * testing: https://bugs.launchpad.net/nova/+bugs?field.tag=testing
 * api: https://bugs.launchpad.net/nova/+bugs?field.tag=api

Low-Hanging-Fruit
Bugs tagged with "Low Hanging Fruit" are not usually good for new contributors. Try to use one of the tags above instead. A list of low hanging fruit bugs is available here, if you're looking for something more advanced: https://bugs.launchpad.net/nova/+bugs?field.tag=low-hanging-fruit