Skip to content
Kyle Medley edited this page Jan 15, 2016 · 12 revisions

Contributing

We welcome contributions to libRoadRunner. libRoadRunner is licensed under version 2.0 of the Apache license. Any contributions you submit to the project must be licensed under the Apache 2.0 license.

Branch Structure

The develop branch of libRoadRunner is used as the main development branch. The master branch is reserved for releases, in order to make the master branch more stable. When a new release is drafted, the changes from develop are merged into master.

Only core developers (Kyle, Kiri, Lucian, Herbert) should push directly to develop. Everyone else should push to a feature branch and submit a pull request for develop.

Continuous Integration

libRoadRunner uses Travis CI. After each commit to develop, Travis automatically clones and builds the entire project from scratch in a dedicated VM. Travis also runs libRoadRunner's test suite, which includes Python and C++ unit tests as well as the SBML test suite. If any if these tests fail, Travis will report the failure via an email message sent to the libRoadRunner mailing list.

Contributors are responsible for ensuring that their contributions do not break the build. Changes that break the build are subject to reversion.

If you think a change might break the build, you can push the change to a feature branch and open a pull request from the feature branch into develop. Travis will automatically build and test the pull request, preventing potentially hazardous changes from being committed to develop.