Skip to content

Development Wiki

Erik Clarke edited this page Jan 23, 2018 · 2 revisions

Sunbeam - Development Wiki

This wiki focuses on development notes and other things of interest to contributors.

For general usage, please see sunbeam.readthedocs.io

Versioning, releases, and branches

Sunbeam uses a dual dev/stable branch structure and semantic versioning to keep things consistent and predictable. Starting with version 1.0.0, all point releases (y and z in x.y.z) should maintain compatibility in their config files, sunbeamlib API, and dependencies. Major releases (changes in x) can break these compatibilities.

How this works

Active development should take place on the dev branch using a branch/pull scheme. If Developer A wants to implement a feature, she can check out a new branch based on dev, make changes, and pull the changes back to dev.

When features are ready to be merged to stable (i.e. they are production-ready), we pull dev into stable and issue a new tag on stable with the version number. This should increment via the following:

  • small bugfixes increment the last number, i.e. 1.0.0 to 1.0.1
  • larger fixes or non-breaking feature additions increment second number and reset the last (1.1.0)
  • major changes (changes to sunbeamlib function signatures, the config file, or the conda requirements) increment the first number and reset the others (2.0.0)

Updates to dev can fail Travis' checks, but we should never pull to stable if the checks don't pass.