Hello all, Here is current strategy we are following for branching and versioning in Lens. If people are fine with the same in apache repo also, I'm planning to push both master and develop branches to the repo.
* Branching Lens has two main branches - <master> and <develop>. All the day to day development happens on <develop> branch. <master> branch is used to make releases. When develop branch is ready for release (all issues marked for release are fixed and all tests passing), develop will merged to master and release will be triggered from master. Once the release is done master will be merged into develop for version number upgrade. If a critical release (not pulling code from develop) needs to be made, a new branch will be created with release number, by checking out master. And changes will be put on the branch. Once the branch is ready they will merged to master and released. The changes should be merged into develop from master once the release is made and resolving conflicts in develop if any. There can feature branches created, if feature is not actively developed in develop branch directly. Having two main branches makes all release tags to be created on master branch and removes the pile up old and stale branches, which are created by one for each release. And Merging of issues done by critical patch release is already taken care. * Versioning Lens follows three number versioning which is major.minor.revision. If the current release is 1.1.0, the next usual development release will be 1.2.0. If there needs to be separate release on released version and not from development branch (usually critical patch release), it will be 1.1.1. If the next release is not api compatible with previous release, then the major version needs to be incremented, then it would become 2.0.0. This way all 1.x.x releases will be compatible with one another. And incompatibility is clearly communicated to users through major version number change. Let me know your thoughts Thanks Amareshwari
