Development¶
This chapter will get you started with MultiGeiger development.
MultiGeiger is written in C using Arduino-ESP32.
Contributions¶
… are welcome!
Some guidance for contributors:
- discuss about changes on github issue tracker
- make your PRs against the
master
branch - do clean changesets:
- focus on some topic, resist changing anything else.
- do not do style changes mixed with functional changes.
- run the automatic code formatter before committing
- try to avoid refactorings mixed with functional changes.
- if you need to fix something after commit/push:
- if there are ongoing reviews: do a fixup commit you can merge into the bad commit later.
- if there are no ongoing reviews or you did not push the bad commit yet: edit the commit to include your fix or merge the fixup commit before pushing.
- have a nice, clear, typo-free commit comment
- if you fixed an issue, refer to it in your commit comment
- make a pull request on github and check on the PR page
what
travis-ci
tells about the code in your PR - wait for review by other developers
Building a development environment¶
TODO
Automatic Code Formatter¶
We use astyle for automated code formatting / formatting checks.
Run it like this:
astyle --options=.astylerc 'multigeiger/\*'
Documentation¶
Building the docs with Sphinx¶
The documentation (in reStructuredText format, .rst) is in docs/source/
,
index.rst
is the starting point there.
To build the docs, you need to have Sphinx installed and run:
cd docs/
make html
Then point a web browser at docs/build/html/index.html
.
The website is updated automatically by ReadTheDocs through GitHub web hooks on the main repository.
Creating binaries¶
Adjust userdefines.h, then use e.g.:
Arduino IDE -> Sketch -> Export compiled binary
Creating a new release¶
Checklist:
make sure all issues for this milestone are closed or moved to the next milestone
check if there are any pending fixes for severe issues
find and fix any low hanging fruit left on the issue tracker
update
changes.rst
, based ongit log $PREVIOUS_RELEASE..
check version number in:
changes.rst
docs/source/conf.py
multigeiger/multigeiger.ino
tag the release:
git tag -s -m "tagged/signed release Vx.y.z" Vx.y.z
create binaries (see above), practically try the binaries
close release milestone on Github
create a Github release, include:
- binaries
- a link to
changes.rst