Release process

June 15, 2026 ยท View on GitHub

Release numbering follows a major.minor.patch format, abbreviated as "X.Y.Z" below.

CI will build the appropriate packages once tags are pushed, as described below.

Release notes

Draft release notes from the diff between the previous package tag and the new release commit. Review the actual diffs rather than relying on commit titles alone, omit unrelated commits, and group user-facing bullets under "New features", "Bug fixes", and "Performance" when applicable. Include the relevant PR number(s) in parentheses after each bullet.

Go library

  1. Update the Version in go/mcap/version.go
  2. Tag a release matching the version number go/mcap/vX.Y.Z.

CLI

  1. Update the version in rust/cli/Cargo.toml
  2. Tag a release matching releases/mcap-cli/vX.Y.Z

The tag version must match the rust/cli/Cargo.toml version; CI fails the release if they differ.

C++

  1. Update the version in all relevant files
    • cpp/bench/conanfile.py
    • cpp/build-docs.sh
    • cpp/build.sh
    • cpp/docs/conanfile.py
    • cpp/examples/conanfile.py
    • cpp/mcap/conanfile.py
    • cpp/mcap/include/mcap/types.hpp (MCAP_LIBRARY_VERSION)
    • cpp/test/conanfile.py
  2. Tag a release matching the version number releases/cpp/vX.Y.Z

Python

There are several python packages; updating any follows a similar process.

  1. Update the version in the appropriate __init__.py file
  2. Tag a release matching releases/python/PACKAGE/vX.Y.Z
    • For example, releases/python/mcap/v1.2.3

TypeScript

There are several TS packages; updating any follows a similar process.

  1. Check out the version of the code you want to release
  2. Update the version in typescript/{pkg}/package.json
    • For @mcap/core, update VERSION in typescript/core/src/version.ts
  3. Make a PR with your changes to package.json
  4. Wait for the PR to pass CI and merge
  5. Checkout main and tag the merged commit with releases/typescript/{pkg}/v#.#.#
  6. Push the new tag to the repo with git push origin releases/typescript/{pkg}/v#.#.#

Swift

  1. Update mcapVersion in swift/mcap/Version.swift
  2. Tag a release matching the version number releases/swift/vX.Y.Z

Rust

  1. Update the version in rust/mcap/Cargo.toml
  2. Tag a release matching the version number releases/rust/vX.Y.Z