HOWTO Contribute to Firmware

The majority of rusEFI code is written in very plain C++ ("C with classes"), with rusEFI console and some code generating tools written in java.

Most of the needs are within the C/C++ firmware and automated testing.

A good first contribution could be adding some automated testing into https://github.com/rusefi/rusefi/tree/master/unit_tests/tests

For current coverage report see https://rusefi.com/docs/unit_tests_coverage/

Doxygen source code documentation is found here.

Primary tool-chain is GCC+Eclipse but IAR is also supported.

Linux is the preferred build environment, Windows Subsystem for Linux (WSL) works fine. To setup development environment use setup_linux_environment.sh

Testing coverage open tickets: https://github.com/rusefi/rusefi/labels/automated_testing

All open tickets: https://github.com/rusefi/rusefi/issues

Click here for a Q&A on source code.

FAQ

not smart to push into master branch of forks

Do not commit to master branch of your fork. There are only two reasons to do that and both are bad.

generated files

Do not commit any of the auto-generated files. Looks like we need to go over which generated files are even pushed into github, definitely technical debt but well, no budget :(