# Release process 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`