README
mcap_vendor
Vendor package for the MCAP C++ library.
Versioning notes
This project abides by the versioning guidelines in the developer guide.
The mcap_vendor
semantic version is intentionally decoupled from the mcap
library version defined in mcap/types.hpp. The mcap
C++ library does not expose a stable ABI, so its version says nothing about ABI compatibility. The mcap_vendor
package is intended
to offer a backwards-compatible ABI within a given major version.
Side-Note: ROS 2 package versions defined in
package.xml
do not support additional labels or metadata after the patch version (eg. the-alpha.1
in1.2.3-alpha.1
).
We make no promises about ABI compatibility across any version of
mcap_vendor
in the Rolling release. Therefore, themcap_vendor
major version in Rolling is always 0. Major or minor revisions ofmcap
should result in a minor version bump ofmcap_vendor
.In stable ROS 2 distributions, the
mcap_vendor
major version is set at some non-zero value.This major version should not be updated for the lifetime of that distribution, because that would indicate a change that breaks ABI compatibility.When a new ROS 2 distribution is cut from Rolling, a new major version
N
is chosen and themcap_vendor
version is set toN.0.0
.The
mcap
version built bymcap_vendor
in a stable distribution should not change. Neccessary bug-fixes should be maintained as patch files inmcap_vendor/patches
, and these patches should not modify themcap_vendor
ABI.