Any new feature, enhancements to existing features, a new plugin addition, etc to CloudStack, then the patch or code merge should have below things available and verified at minimum:
- Effective Unit tests
- Effective Integration tests written for Marvin, covering sanity and other feature functionality
- No Check Style Issues reported.
- Should have passed BVT on simulator at least. Check the below link for usage on Simulator, if we can run hardware tests and added functionality change effects that code, then hardware tests also should run and pass.
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Validating+check-ins+for+your+local+changes%2C+using+Simulator - 0 Static analysis issues reported in new code addition, either through findbugs, coverity, pmd etc. How to use findbugs at the link below:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Using+FindBugs - Effective documentation or wiki page updates.
- Have enough code documentation available for users to understand the code flow.
- Have effective exception handling and appropriate logging information
- Avoid hard coded values where possible and move them to config.
- Follow common naming conventions and practices as adhered in other available modules.
- Avoid exact copy paste code and duplicate code.
- Submit the test run logs, static analysis reports, and other misc information to the submission.
- Any new command addition or existing interface modification, corresponding changes to simulator code as well need to be added.
***** Reviewers can enforce these and inquire at the time of reviewing submissions.