-
Notifications
You must be signed in to change notification settings - Fork 39
Development Wiki
This wiki focuses on development notes and other things of interest to contributors.
For general usage, please see sunbeam.readthedocs.io
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.
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.