There's been some discussion brought up about versioning as part of the JDK 17 thread for Artemis so I wanted to break it out into another thread.
That thread made it apparent that the project doesn't really have any guidelines on how we do versions so I think it would be a good idea to decide on our versioning policy going forward and what we are allowed to change between major/minor/patch releases. We don't have to actually adopt SemVer 2.0 but it's a good starting point for discussion. As a good example on another project, I'm also on the PMC for Apache Accumulo and we have a policy defined for long term releases and we also adopted SemVer 2.0 and have a well documented policy on it: https://accumulo.apache.org/contributor/versioning Accumulo has also defined the public API and what is actually guaranteed to change only in accordance with SemVer 2.0: https://accumulo.apache.org/api/ Any code outside the public API does not need to follow SEMVER and can change in any release. This reduces the burden because trying to be super strict for all code would be pretty hard to do and not necessary. Thoughts?