1.3. Development Environment

This section will describe everything around the development environment, among other things:

  • How to set it up

  • How to use it

  • How to debug with and without ROS

  • Why you should always use the docker container

  • How to use the CI pipeline

Let’s start with the most important question:

1.3.7. Why you should always use a docker container!

First, why do we even use a docker container?

That’s rather simple. We developed on a lot of different systems and still want that the code runs on all machines and especially on the ACU without the need to always install all dependencies on the host system and the need to wonder why it works on his PC but not in mine. One suitable solution is to use docker containers. Another advantage is, that one can simple rebuild or rerun the docker container when something stops working instead of needing to reinstall every dependency.

Yeah okay, then let’s use a docker container on the ACU and run everything on my own host system.

That’s a “neat” idea, but how do you then know, whether the docker image still works?

Yeah okay, then I will develop everything on my own host system, subsequently test it inside the docker container.

That could in fact work, but it is still not recommended and most importantly not supported.

The repository and the development environment is aimed on using Visual Studio Code as IDE and the docker container as development environment. This setup is tested and described, everything else you might do, but there is no support and especially no guarantee that it will work.

This decision hasn’t been decided lightly. Most of the things just works way easier if you develop and run it inside the docker container. Atleast if you do it correctly. To ensure this, this documentation exists.