Basilisk Module Checkout List
This documents contains a series of action items that should be checked before a Basilisk (BSK) module is approved.
Branch Must Be Up to Date
Make sure the branch is up to date and rebased on the latest develop code before a pull request is made.
Building Basilisk and Testing
Do a clean build of Basilisk and make sure all code compiles as expected (see FAQ on how to do a clean build)
From the project root directory, run
python run_all_test.py
and ensure all python and C/C++ tests are passing as expected (see Installing Optional Packages for info on installing and runningpytest
)
Style and Formatting
Do the code variables satisfy the Basilisk code style guidelines?
Are 4 spaces used instead of tabs?
Module Programming
Are all module input and output messages Swig’d in the module
*.i
fileDoes the code contain appropriate general comments
Does the code contain Doxygen compatible function descriptions, variable definitions, etc.
Module startup and initialization
The
SelfInit()
routine should declare the module output messagesThe
CrossInit()
routine should subscribe to the module input messagesThe
Reset()
in the FSW modules should reset all the default module configuration parameters.
Is the module using the bskLogging Basilisk logging function? A general support library, i.e. non-Basilisk module, should use
BSK_PRINT()
instead.
Module Documentation
Does the module contain a restructured text documentation file xxxx.rst
, where xxxx
should be the same name as the module C or C++ file name. The Module: cModuleTemplate module contains a sample documentation set for a Basilisk module. The required sections include:
Executive Summary
Module Assumptions and Limitations
Message Connection Descriptions
User Guide
The section Detailed Module Description is optional and used if there is extensive functionality and modeling to discuss.
As part of the code checkout build and test the associated documentation (see Creating the HTML Basilisk Documentation using Sphinx/Doxygen).
Module Functionality Testing
Is a _UnitTest
folder included that:
includes a python file name starting with
test_
provides a test method that starts with
test_xxxx()
contains sufficient comments within the test file to explain what is done
only uses the test module (if possible), and creates the various required input messages
checks the module output for all input and module configuration conditions
performs the validation checking against either custom-computed results in other programs (Matlab, Mathematica, hand calculation), live Python computed results, or against expected simulation data (consistency checking)
can also be run with the python command instead of pytest (by updating the
__main()__
function at the bottom of the python file)
Module Integrated Test
If an integrated test is provided as a test_XXX.py
file. Does this test method have a complete description of what is being tested? The test_cModuleTemplateParametrized.py file contains a template illustrating the expected information. Required sections include
Validation Test Description
Test Parameter Discussion
Description of variables being tested
See the FAQ on how to run generate an html validation report using pytest --report
. Note that it is ok to just run this report for the module being tested.
Update Release Notes
Update the Basilisk Release Notes at /docs/source/Support/User/bskReleaseNotes.rst
to include information about the new features being added.