Guidelines for Developers
The developer documentation provides a good starting point. This provides miscellaneous guidelines for doing development.
We need to make sure we don't unintentionally break backwards compatibility. Things to watch out for:
- exception names. If you want to change the name of an exception class, please add an alias for the original name. The commit should have a DocImpact flag, with a description of what is deprecated, when it will be removed, and what to use instead (if anything).
If your change includes significant API visible functionality, there should be corresponding tempest test coverage. Eg anything that the nova.virt.ironic driver does. The developer responsible for the code changes is also responsible for ensuring that there is tempest test coverage. (The developer doesn't have to make the tempest test changes; they could work with another developer to help write the tempest tests.)
Tempest is run via devstack, where the latest master branch of Ironic is cloned and then tests are run against it. So changes have to be in Ironic before the tempest test can pass. The suggested process is:
- code changes ready for review
- corresponding tempest changes ready for review
- the code changes may be blocked from being approved if there are no corresponding tempest changes
- after the code changes have been merged, the tempest changes will be merged. If the tempest tests fail, we'll all scream.
- for the specs, http://asciiflow.com is used, so we decided to use the same for our ironic documentation