Skip to content

Contributing and Development on IonDB

Kris Wallperington edited this page Aug 26, 2016 · 6 revisions

Repository Setup

These make commands must be run before beginning work on IonDB (while in the repository root) in order to setup necessary submodules and pre-commit hooks.

make setup
make hooks

If you move the directory of your repository to a different path, make sure you re-run make hooks, since some of the paths used are absolute.

Dependencies

  • uncrustify, version 0.63 or newer
  • CMake, version 3.0 or newer
  • python, version 2.7.x or newer
  • build-essential, for make, gcc, g++, and others.

If you want to test things on device, we suggest avoiding use of the Arduino IDE directly. Our CMake build process has support for compiling and uploading directly to device. You will require the following:

  • ArduinoIDE, version 1.6.x or higher. Provides the Arduino libraries and the avr-gcc compiler.

Then, the following flags are required for CMake. The mega is used as an example here:

-DUSE_ARDUINO=TRUE -DBOARD=mega -DPROCESSOR=atmega2560 -DBAUD_RATE=115200 -DPORT=/dev/cu.usbmodem1421

Note: If you're running something that uses SD based file I/O, then the -DSD_CS_PIN=4 directive is also needed. Replace 4 with whatever pin your SD interface communicates on. The ethernet shield uses pin 4.

Replace the parameters with the appropriate settings for your setup.

Refer to the installation instructions for the CMake toolchain if you would like more detailed information on what's required to get it set up.

Compilation

In the root IonDB folder, the following will compile and execute all unit tests on your machine to ensure everything is configured correctly.

make all
make test

Contributing

We are always happy to receive pull requests for features and bugfixes. Feel free to submit pull requests for minor changes, such as typos or minor improvements. Target the development branch whenever you fork, and use it as the base for your pull requests.

For major features and changes, please open an issue first with the orange proposal tag to discuss your ideas with our team before beginning work to resolve any potential conflicts.

Feel free to open purple question tagged issues for any questions you may have on IonDB.

The Integration Process

IonDB adheres to strict standards that any code submitted must adhere to. These standards can be found in this document.

The process used in accepting a pull request is detailed here.