Categories

[AmpeROSE] Continuous ∫ntegration

Hello, everyone!

Besides looking into the measurement circuit, one of our tasks for this week, was to establish our plan for continuous integration. The continuous integration routine performed on each commit made to our depot should verify if the contributed code complies with our style guidelines, compiles correctly and passes any tests that have been defined.

A necessary first step in this process was to determine what languages will be part of the Amperose project. We decided to use C for the firmware that is executed on our device, and python for the user interface program that will communicate with AmpeROSE through ethernet. With this in mind, we proceeded to define how our code will be evaluated by our continuous integration routine:

Style verification: we’ll use clang-format to verify the style of C code, based on a configuration file we have defined (a slightly modified version of the Webkit standard). For python, we’ll follow the PEP-8 standard (https://www.python.org/dev/peps/pep-0008/), and use the pep-8 utility (https://pypi.python.org/pypi/pep8) to verify code style.

Compilation: C code will be compiled with the arm-none-eabi-gcc toolchain. Python code will be interpreted with python3.

Tests: We will use unittest for Python unit testing, and Criterion (https://github.com/Snaipe/Criterion) for C.

In conclusion the sequence followed by our continuous integration routine will be: install the dependencies of the python program using pep3 –> check the style of python and C code –> compile C code –> run tests. We’re about to start working in earnest with our development board and with pyqt to implement the firmware and the user interface, so having this routine in place will be very useful in ensuring the quality of our code.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>