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