Skip to content

Development

Chad Trabant edited this page Feb 13, 2024 · 11 revisions

Versioning:

ROVER follows the Semantic Versioning schema: https://semver.org/

Workflow model, tagging and branching

ROVER development follows a Gitflow workflow. At the highest level, these are the guidelines:

  • The HEAD of the main branch is always the last release of the latest major version.
  • New release changes are only merged (without squashing) from a develop branch.
  • Bug fixes and feature development are done in branches off of the develop branch, which are squashed when they are merged back into develop.
  • All release tags are on main or release branches from main.
  • If bug fixes or feature back ports are needed for an older major version release, a release branch will be created at the release tag, e.g. HEAD of main is at version 2.0.0, a fix for version 1.2.0 will be done in a 1.x release branch from main. New minor releases to that branch are tagged on that branch.

The development cycle is as follows:

  • Changes are created in a branch from develop (for committers) or a pull request (for external contributors) against develop, or an older major release branch.
  • Changes are reviewed by a committer, with explicit approval noted in the PR comments.
  • The PR is merged by any committer to develop, with all commits squashed and a concise message.

Local development and release procedures

See the development.txt file in the repo for instructions on setting up a development environment and creating new releases, including an upload to PyPI.

Clone this wiki locally