Skip to content

Latest commit

 

History

History
78 lines (49 loc) · 3.41 KB

RELEASES.md

File metadata and controls

78 lines (49 loc) · 3.41 KB

Releases and versioning

This document describes the current release and versioning strategy. This strategy is likely to change as Rerun matures.

See also

Release Cadence

New Rerun versions are released every two weeks. Sometimes we do out-of-schedule patch releases.

Library versioning and release cadence

Each release include new versions of:

  • The Python SDK
  • The Rust SDK
  • All rust crates

We use semantic versioning. All versions are increased in lockstep, with a minor version bump each time (0.1.0, 0.2.0, 0.3.0, …).

This means we might add breaking changes in each new release.

In rare cases we will do patch releases, e.g. 0.3.1, when there is a critical bug fix. These patch releases will not contain any breaking changes.

We sometimes do pre-releases. Then we use the versioning 0.2.0-alpha.0 etc.

Data and communication versioning

We have not yet committed to any backwards or forwards compatibility.

We tag all data files (.rrd files) and communication protocols with the rerun version number. If there is a version mismatch, a warning is logged, but an attempt is still made to load the older or newer data.

Releases

Release builds of the Python Wheels are triggered by pushing a release tag to GitHub in the form v0.2.0. If we are doing a patch release, we do a branch off of the latest release tag (e.g. v0.3.0) and cherry-pick any fixes we want into that branch.

Release process

  1. Check the root Cargo.toml to see what version we are currently on.

  2. Create a release branch.

    Name it release-0.x.y, replacing 0.x.y with the current version number you found in Cargo.toml. The branch name must match the release-0.x.y pattern, otherwise the CI can't infer the version from it.

Image showing the branch create UI. You can find the new branch button at https://github.com/rerun-io/rerun/branches

  1. If this is a patch release, cherry-pick commits for inclusion in the release into the branch.

  2. Update CHANGELOG.md.

    It should include:

    • A one-line summary of the release
    • A multi-line summary of the release
    • A gif showing a major new feature
    • Run git tag -d latest && git fetch --tags ; pip install GitPython && scripts/generate_changelog.py
    • Edit PR descriptions/labels to improve the generated changelog
    • Copy-paste the results into CHANGELOG.md.
    • Editorialize the changelog if necessary
    • Make sure the changelog includes instructions for handling any breaking changes

    Once you're done, commit and push the changelog onto the release branch.

  3. Set Use workflow from to the new release branch, and choose prerelease in the drop-down menu.

    Image showing the Run workflow UI. It can be found at https://github.com/rerun-io/rerun/actions/workflows/release.yml

  4. Wait for the workflow to finish

    The workflow will create a pull request for the release. The PR description will contain next steps.