So you want to get more involved with Nova? Or you are new to Nova and wondering where to start?
We are working on building easy ways for you to get help and ideas on how to learn more about Nova and how the Nova community works.
Any questions, please ask! If you are unsure who to ask, then please contact the Mentoring Czar.
There are quite a few global docs on this:
There is more general info, non Nova specific info here:
So you are starting out your Nova journey, where is a good place to start?
If you’d like to learn how Nova works before changing anything (good idea!), we recommend looking for reviews with -1s and -2s and seeing why they got downvoted. There is also the Code Review Guide for Nova. Once you have some understanding, start reviewing patches. It’s OK to ask people to explain things you don’t understand. It’s also OK to see some potential problems but put a +0.
Another way is to look for a subteam you’d like to get involved with and review their patches. See: https://etherpad.openstack.org/p/mitaka-nova-priorities-tracking
Once you’re ready to write code, take a look at some of the work already marked as low-hanging fruit:
The best way of getting your feature in is... well it depends.
First concentrate on solving your problem and/or use case, don’t fixate on getting the code you have working merged. Its likely things will need significant re-work after you discuss how your needs match up with all the existing ways Nova is currently being used. The good news, is this process should leave you with a feature thats more flexible and doesn’t lock you into your current way of thinking.
A key part of getting code merged, is helping with reviewing other people’s code. Great reviews of others code will help free up more core reviewer time to look at your own patches. In addition, you will understand how the review is thinking when they review your code.
Also, work out if any on going efforts are blocking your feature and helping out speeding those up. The spec review process should help with this effort.
For more details on our process, please see: Nova team process.
TODO - need more info on this
Here are some top tips around engaging with the Nova community:
It can feel like you are faced with a wall of process. We are a big community, to make sure the right communication happens, we do use a minimal amount of process.
If you find something that doesn’t make sense, please:
To learn more about Nova’s process, please read Nova team process.
Why is it worth creating a bug or blueprint to track your code review? This may seem like silly process, but there is usually a good reason behind it.
We have lots of code to review, and we have tools to try and get to really important code reviews first. If yours is really important, but not picked up by our tools, it’s possible you just get lost in the bottom of a big queue.
If you have a bug fix, you have done loads of work to identify the issue, and test out your fix, and submit it. By adding a bug report, you are making it easier for other folks who hit the same problem to find your work, possibly saving them the hours of pain you went through. With any luck that gives all those people the time to fix different bugs, all that might have affected you, if you had not given them the time go fix it.
Its similar with blueprints. You have worked out how to scratch your itch, lets tell others about that great new feature you have added, so they can use that. Also, it stops someone with a similar idea going through all the pain of creating a feature only to find you already have that feature ready and up for review, or merged into the latest release.
Hopefully this gives you an idea why we have applied a small layer of process to what we are doing. Having said all this, we need to unlearn old habits to move forward, there may be better ways to do things, and we are open to trying them. Please help be part of the solution.
Code reviews are the life blood of the Nova developer community.
There is a good discussion on how you do good reviews, and how anyone can be a reviewer: http://docs.openstack.org/infra/manual/developers.html#peer-review
In the draft process guide, I discuss how doing reviews can help get your code merged faster: Nova team process.
Lets look at some of the top reasons why participating with code reviews really helps you:
What are the most useful types of code review comments? Well here are a few to the top ones:
Let’s look at some problems people hit when starting out doing code reviews:
http://docs.openstack.org/infra/manual/developers.html#peer-review
For more tips, please see: Why do code reviews if I am not in nova-core?
You don’t have to be nova-core to be a valued member of the Nova community. There are many, many ways you can help. Every quality review that helps someone get their patch closer to being ready to merge helps everyone get their code merged faster.
The first step to becoming nova-core is learning how to be an active member of the Nova community, including learning how to do great code reviews. For more details see: https://wiki.openstack.org/wiki/Nova/CoreTeam#Membership_Expectations
If you feel like you have the time to commit to all the nova-core membership expectations, reach out to the Nova PTL who will be able to find you an existing member of nova-core to help mentor you. If all goes well, and you seem like a good candidate, your mentor will contact the rest of the nova-core team to ask them to start looking at your reviews, so they are able to vote for you, if you get nominated for join nova-core.
We encourage all mentoring, where possible, to occur on #openstack-nova so everyone can learn and benefit from your discussions.
The above mentoring is available to every one who wants to learn how to better code reviews, even if you don’t ever want to commit to becoming nova-core. If you already have a mentor, that’s great, the process is only there for folks who are still trying to find a mentor. Being admitted to the mentoring program no way guarantees you will become a member of nova-core eventually, it’s here to help you improve, and help you have the sort of involvement and conversations that can lead to becoming a member of nova-core.
http://specs.openstack.org/openstack/nova-specs/specs/mitaka/template.html
http://docs.openstack.org/developer/nova/devref/kilo.blueprints.html#when-is-a-blueprint-needed
Spec reviews are always a step ahead of the normal code reviews. Follow the above links for some great information on specs/reviews.
The following could be some important tips:
1. The specs are published as html documents. Ensure that the author has a proper render of the same via the .rst file.
2. More often than not, it’s important to know that there are no overlaps across multiple specs.
3. Ensure that a proper dependency of the spec is identified. For example - a user desired feature that requires a proper base enablement should be a dependent spec.
5. Every release nova gets a huge set of spec proposals and that’s a huge task for the limited set of nova cores to complete. Helping the cores with additional reviews is always a great thing.
https://wiki.openstack.org/wiki/Nova/BugTriage
More details coming soon...
There are many ways to help lead the Nova project: