Checklist for new backends [WIP]¶
This page is currently a work in progress.
Research¶
Find low-level protocol documentation, ideally RFCs or open documentation
Make sure that implementing the protocol does not violate intellectual property laws
Layout how the protocol components map onto MIDIMonster terminology (instances, channels, events)
- Figure out what parameters are required to configure the protocol
Try to minimize the set of parameters required to get a backend/instance up and running to allow for short configurations
Introduce optional parameters to allow users to implement complex use-cases if they want to
Programming¶
Implement a basic skeleton backend (<backend>.c/h) and flesh it out with the protocol implementation
If the new backend requires additional prerequisites, add them to the CI script (but not yet to the documentation)
If required, add a new target to the backend makefile (but do not yet add the backend to the default build targets)
Documentation¶
- Write down the backend documentation
Take care to document all required parameters, as well as examples for their use
Document the backends channel specification syntax, including examples
Create an example configuration using the backend
Testing¶
Try to run the backend on all platforms it is designed for
If possible, try to load-test with a mass event generator script
Publish¶
Add the backend to the default target list in the backends makefile
- Add the new backend to the main README
Add to the initial backend overview, including the new backends target operating systems
Add to the backend documentation section
- Add the new backend to auxiliary documentation
Sort into the packaging unit grouping
Add to the knowledge base backend overview
- If introducing new prerequisites
Add the new preprequisites to the main README