Contributor Documentation¶
Contributing to nova gives you the power to help add features, fix bugs, enhance documentation, and increase testing. Contributions of any type are valuable, and part of what keeps the project going. Here are a list of resources to get your started.
Getting Started¶
- How to get (more) involved with Nova: Overview of engaging in the project
- Development Quickstart: Get your computer setup to contribute
Nova Process¶
The nova community is a large community. We have lots of users, and they all have a lot of expectations around upgrade and backwards compatibility. For example, having a good stable API, with discoverable versions and capabilities is important for maintaining the strong ecosystem around Nova.
Our process is always evolving, just as nova and the community around Nova evolves over time. If there are things that seem strange, or you have ideas on how to improve things, please bring them forward on IRC or the openstack-dev mailing list, so we continue to improve how the nova community operates.
This section looks at the processes and why. The main aim behind all the process is to aid communication between all members of the nova community, while keeping users happy and keeping developers productive.
- Scope of the Nova project: The focus is on features and bug fixes that make nova work better within this scope
- Development policies: General guidelines about what's supported
- Nova team process: The processes we follow around feature and bug submission, including how the release calendar works, and the freezes we go under
- Blueprints, Specs and Priorities: An overview of our tracking artifacts.
For Reviewers¶
- Release Notes: When we need a release note for a contribution.
- Code Review Guide for Nova: important cheat sheet for what's important when doing code review in Nova, especially some things that are hard to test for, but need human eyes.
- Internationalization: what we require for i18n in patches
Testing¶
Because Python is a dynamic language, code that is not testing might not even be python code. All new code needs to be validated somehow.
- Test Strategy: An overview of our test taxonomy, and the kinds of testing we do and expect.
- Testing Guides: There are also specific testing guides for features that are hard to test in our gate.
The Nova API¶
Because we have many consumers of our API, we're extremely careful about changes done to the API, as the impact can be very wide.
- Extending the API: How the code is structured inside the API layer
- Adding a Method to the OpenStack API: (needs update)
- API Microversions: we use microversions to version our API, this walks you through what you need to do when adding an API exposed feature that needs one.
Nova Major Subsystems¶
Major subsystems in Nova have different needs, some of those are documented here. If you are contributing to one of these please read the subsystem guide before diving in.