Dear community members, Now that we're preparing a new release under the 1.0 version, I'd like to propose that we discuss, clarify, and decide how we use versions and branches.
Current practice is: 1. we use master branch for development. 2. we fork from master branch and create release branch for specific versions, such as 1.0.0 3. no formal process for bug fixes on those release branches after release 4. not agreed on using Semantic Versioning for deciding version number: https://semver.org/ (though technically not breaking it either, because we only had one release for 1.0 so far, which defines the promised set of public APIs) I propose the following changes: 1. we continue to use master branch for development (not really a change, duh) 2. we create release branches for minor versions, such as 1.0.x, 1.1.x, and release from the head of those branches with version numbers according to semantic versioning. 3. we regularly apply relevant bug fixes to release branches and provide maintenance releases. 4. we use the same protected branch and CI features to protect our release branches (i.e. PR-only, tested at every step) 5. we promise the practice of semantic versioning to users. Note that in order to be able to perform proposed item 3, we need clarity on whether a PR introduces a new API, and record the version in which it was released. Note that this applies to new argument to existing API, and new semantic meaning of existing APIs and arguments. This way, we know which bug fixes are relevant to which versions. Your thoughts and suggestions are welcome. Thank you for your time. -sz
