/ArduCar

Primary LanguageC++

Play with GitHub Flow in Embedded Context

Repository health

Branch main: health_main

Contributor's Guide

Initial setup of repository

  1. Fork this repository from the https://github.com/basejumpa/arduCar into your personal space on the server using the GitHub web interface.
  2. Clone your fork somewhere onto your local harddrive. Your fork is the remote with name origin
  3. Configure this repository as the upstream repository git remote add upstream https://github.com/basejumpa/arduCar.git

For each contribution do

  1. Get latest greatest: git fetch upstream
  2. Create your local feature branch: git checkout -b feature/my-cool-feature upstream/develop
  3. Hint: Track upstream with your tracking branch: git branch -u upstream/develop
  4. Create a changes, save them, add them and commit them: ... ; git add ... ; git commit ...
  5. Regularily update your local repository and your fork: git fetch upstream ; git merge ...
  6. Work on your files in a test driven way. While coding run regularily the unittests of all modules you're working on. Execute them either in the git shell with ./makew unittest or from within your IDE. Read below to learn how to reduce the build scope to specific units.
  7. When your stuff is mature enough for the first review + test, then ... *create pull request- using the GitHub web interface.

Installation of the toolchain

The installation is done within the first build on your machine. Because of this the first build takes longer. The installation is done within the git installation which is part of your SmartGit folder. It is just a copy process, so your Windows System doesn't get polluted.

Changing the scope of build:

Edit the file makew_settings.mk to change the scope of any target.

The defaults are:

FLAVORS=M_a
UNITS=.+
DEVICE=1

The values of both variables FLAVORS and UNITS are https://en.wikipedia.org/wiki/Regular_expression[regular expressions].

The defaults mean do the target ...

  • for flavor M_a only and over
  • all existing units.

Examples how to restrict it:

FLAVORS=.+
UNITS=A1
DEVICE=1

That means loop over all existing flavors M_a and only unit A1.

Some more complex example:

FLAVORS=M_.+
UNITS=[AD][13-5]
DEVICE=1

That means apply the target over all flavors of customer M and over the units A1`A3, A4, A5, D1, D3, D4 and D5.