1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
===========================
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.
Basic Information
=================
.. toctree::
:maxdepth: 2
contributing
Getting Started
===============
* :doc:`/contributor/how-to-get-involved`: Overview of engaging in the project
* :doc:`/contributor/development-environment`: Get your computer setup to
contribute
.. # NOTE(amotoki): toctree needs to be placed at the end of the secion to
# keep the document structure in the PDF doc.
.. toctree::
:hidden:
how-to-get-involved
development-environment
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-discuss
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.
* :doc:`/contributor/project-scope`: The focus is on features and bug fixes
that make nova work better within this scope
* :doc:`/contributor/policies`: General guidelines about what's supported
* :doc:`/contributor/process`: The processes we follow around feature and bug
submission, including how the release calendar works, and the freezes we go
under
* :doc:`/contributor/blueprints`: An overview of our tracking artifacts.
* :doc:`/contributor/ptl-guide`: A chronological PTL reference guide
.. # NOTE(amotoki): toctree needs to be placed at the end of the secion to
# keep the document structure in the PDF doc.
.. toctree::
:hidden:
project-scope
policies
process
blueprints
ptl-guide
Reviewing
=========
* :doc:`/contributor/releasenotes`: When we need a release note for a
contribution.
* :doc:`/contributor/code-review`: 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.
* :doc:`/reference/i18n`: What we require for i18n in patches
* :doc:`/contributor/documentation`: Guidelines for handling documentation
contributions
.. # NOTE(amotoki): toctree needs to be placed at the end of the secion to
# keep the document structure in the PDF doc.
.. toctree::
:hidden:
releasenotes
code-review
/reference/i18n
documentation
Testing
=======
Because Python is a dynamic language, code that is not tested might not even
be Python code. All new code needs to be validated somehow.
* :doc:`/contributor/testing`: 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.
* :doc:`/contributor/testing/libvirt-numa`
* :doc:`/contributor/testing/serial-console`
* :doc:`/contributor/testing/zero-downtime-upgrade`
* :doc:`/contributor/testing/down-cell`
* **Profiling Guides**: These are guides to profiling nova.
* :doc:`/contributor/testing/eventlet-profiling`
.. # NOTE(amotoki): toctree needs to be placed at the end of the secion to
# keep the document structure in the PDF doc.
.. toctree::
:hidden:
testing
testing/libvirt-numa
testing/serial-console
testing/zero-downtime-upgrade
testing/down-cell
testing/eventlet-profiling
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.
* :doc:`/contributor/api`: How the code is structured inside the API layer
* :doc:`/contributor/api-2`: (needs update)
* :doc:`/contributor/microversions`: How the API is (micro)versioned and what
you need to do when adding an API exposed feature that needs a new
microversion.
* :doc:`/contributor/api-ref-guideline`: The guideline to write the API
reference.
.. # NOTE(amotoki): toctree needs to be placed at the end of the secion to
# keep the document structure in the PDF doc.
.. toctree::
:hidden:
api
api-2
microversions
api-ref-guideline
Nova Major Subsystems
=====================
Major subsystems in nova have different needs. If you are contributing to one
of these please read the :ref:`reference guide <reference-internals>` before
diving in.
* Move operations
* :doc:`/contributor/evacuate-vs-rebuild`: Describes the differences between
the often-confused evacuate and rebuild operations.
* :doc:`/contributor/resize-and-cold-migrate`: Describes the differences and
similarities between resize and cold migrate operations.
.. # NOTE(amotoki): toctree needs to be placed at the end of the secion to
# keep the document structure in the PDF doc.
.. toctree::
:hidden:
evacuate-vs-rebuild
resize-and-cold-migrate
|