Version major 0 meant active development and research (during my PhD): partially documented code, no official API released, lack of unit/integration tests
Version minor was bumped only when database schema changed or big API breaking change happened
Version patch was bumped for every fixes but also new features (small or large) not related to a database schema change
For ros package, we tried to keep in sync rtabmap_ros version with upstream rtabmap version so that it is easier for a user to checkout the compatible corresponding versions from source. That means if a change in rtabmap_ros is required, but not in upstream rtabmap, we abused the debinc version of ros buildfarm to release a new package with same major.minor.patch version but with patched ros related code (e.g., a change in package.xml dependencies). This can cause issues like https://github.com/ros/rosdistro/pull/41892#issuecomment-2220360749
Roadmap to follow better standard for versioning this package:
Major version should be incremented when we break API
Version 1: document every public functions, produce doxygen web page API, add unit tests
Minor version should be incremented for any new feature (new camera support, new parameter, new database schema), and they should be backward compatible
Patch version should be incremented for bug fixes or small documentation changes (ideally that don't require ros changes)
For rtabmap_ros (based on that comment): we should allow patch version to diverge from the upstream patch version, making only version.minor version requirement to have compatible ros package and upstream library. That will smooth the release process on ros buildfarm.
Historically:
major.minor.patch
version but with patched ros related code (e.g., a change in package.xml dependencies). This can cause issues like https://github.com/ros/rosdistro/pull/41892#issuecomment-2220360749Roadmap to follow better standard for versioning this package:
version.minor
version requirement to have compatible ros package and upstream library. That will smooth the release process on ros buildfarm.