Jump to: navigation, search

Difference between revisions of "Ironic/Developer guidelines"

(Backwards compatibility)
(Guidelines for Developers)
Line 17: Line 17:
 
* the code changes may be blocked from being approved if there are no corresponding tempest changes
 
* 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.
 
* after the code changes have been merged, the tempest changes will be merged. If the tempest tests fail, we'll all scream.
 +
 +
=== Documentation ===
 +
==== diagrams ====
 +
* for the specs, http://asciiflow.com is used, so we decided to use the same for our ironic documentation

Revision as of 15:37, 20 October 2014

Guidelines for Developers

The developer documentation provides a good starting point. This provides miscellaneous guidelines for doing development.

Backwards compatibility

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).

Tempest tests

[Tempest] tests are black-box functionality tests. [Ironic uses tempest] for API and functional testing.

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.

Documentation

diagrams

  • for the specs, http://asciiflow.com is used, so we decided to use the same for our ironic documentation