=================
Review Guidelines
=================
When reviewing neutron-lib changes, please be aware:
* When code is moved from neutron, please evaluate with the following
criteria:
- Is all of the code shared? Don't move neutron-only code.
- Is the interface good, or does it need to be refactored?
- Does it need new tests, specifically around the interface? We want
a global unit coverage greater than 90%, and a per-module coverage
greater than 80%. If neutron does not yet have a test, it needs to
be added. Note that tests on things like constants are uninteresting,
but any code or interface should have a unit test, if you cannot
tell for sure that it is not going to be traversed in some alternative
way (e.g. tempest/functional coverage).
- Is there a corresponding Depends-On review in neutron removing
this code, and adding backwards compatibility shims for Mitaka?
- Do the public APIs have their parameters and return values documented
using reStructuredText docstring format (see below)?
* Public APIs should be documented using `reST style docstrings `_
that include an overview as well as parameter and return documentation.
The format of docstrings can be found in the `OpenStack developer hacking docs `_.
Note that public API documentation is a bonus, not a requirement.
* Public classes and methods must not be destructively changed without
following the full OpenStack deprecation path.
For example, do not:
- Change names of classes or methods
- Reorder method arguments
- Change side effects
Alternatives:
- Add a second method with the new signature
- Add keyword arguments
* Removing the code from neutron should include a shim in neutron
for the sake of subprojects. Refer to neutron/common/exceptions.py
for an example. Please Use oslo's debtcollector library,
example: http://docs.openstack.org/developer/debtcollector/
The above implies that if you add something, we are stuck with that interface
for a long time, so be careful.
* Any code that imports/uses the following python modules should not be
moved into neutron-lib:
- eventlet