Hey there everyone,
I am looking for some feedback on an idea for a problem I have noticed with newcomers to RIOT.
I have found that students, particularly those inexperienced with Linux, can spend the better part of a day (sometimes days) just getting an environment setup to build RIOT and flash a board. There are different ways of doing this, many that are outdated or unmaintained.
I would say the current “recommended system” is defined by our docker setup. This is missing the flashing and debug setup however…
I propose the following:
- Add the flasher + debug capabilities for to riots docker file with the help of the
--deviceflag and possibly some discovery scripts
- Add some docs and basic scripts to help with setup of windows and mac systems so they can run RIOT via a docker entrypoint
- Add github actions to test that these are keeping up-to-date
- Deprecate outdated setup scripts/boxes so there is one clear entrypoint
- Make a machine readable
make print-versionsto allow comparing the output across different platforms (ie, docker running in windows vs docker running in mac vs docker running in ubuntu vs native developer machine)
- Add clear documentation to say this is the recommended system for development
- Add a dev container for those vs-code users out there
If we have this we solve the problem of developing with other operating systems and distributions and can better define what is needed to run RIOT.
The one issue that I haven’t included is setting up on a native ubuntu box and developing without docker. For this I would imagine either a setup_script.sh or and ansible playbook or something. The problem would be that we now need to maintain both the Dockerfile and the script. If we use the
make print-versions we can force them to be in sync with each-other but it adds some overhead.
Anyways, please let me know if people think this is actually an issue in RIOT, if the proposed solution seems reasonable, and if there are any corner-cases I am missing.