In this document, we try to guide contributors to know what should be included in the patch. This guide is also helpful for reviewers covering what to look for when accepting a patch for Dragonflow.
The following items are expected for every patch:
Spec should cover what the proposed feature is about, the impact it has on the user, etc. It is the high-level design document. In essence, it should show the spirit of the implementation. It should convey the general idea of what the feature does, how packets are handled, and where the information comes from. The spec should also include data-model changes, since this is the basis for the Dragonflow API.
DevRef should cover how the proposed feature is supported. It is a low-level design document explaining how the feature is implemented. It should cover design decisions too low level to be included in the spec. It should also cover the southbound implementation, including the rationale. The general guideline should be - if a new contributor reads this document, they should be able to understand the code of the application.
The difference between a spec and a devref is difficult to formalize. In essence, the spec should give a high-level design, while the dev-ref should give a low-level design of the feature. The guiding thought is that the spec should remain unchange unless there is a massive feature overhaul, but the dev-ref may change due to bug fixes, since it covers the low-level specifics.
Note that when writing the dev-ref, that the code is also available. Rather than explain the code, try to explain what the code is supposed to do, what is the end result supposed to look like, and most importantly, why the code looks that way.
Specs are usually reviewed and accepted before the implementation begins. Dev-refs are usually reviewed and accepted as part of the implementation or implementation change.
For any issue with existing implementation, a bug report is expected.
For any new feature request or existing feature enhancement bug report with [RFE] tag is expected. Blueprint creation is not required.
Bug report should have descriptive title and detailed description. It is not a trivial task to submit a good bug-report, so we try to outline some guidelines that may help:
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.