It's been a year since v1.0 was released, to be able to release more often I need to put in more effort to issue management and planning. As part of that I want to have a Roadmap that highlights roughly what's coming in the foreseeable future, but first I need a versioning scheme that could work for me.
I came across this Wikipedia page on Software Versioning and found that people use all kinds of schemes to version their releases, it can be anything really.
So I decided to adopt a semver major.minor.patch-(a|b|rc)[1-9] kinda scheme starting v2.0. To get releases to users faster, a release is planned every milestone. Milestones can give or take be weekly or bi-weekly (or a long time if I get stuck :)
This table shows an example of this version scheme for the next full release cycle.
|Life Cycle||Version Example||Description|
|alpha||v2.0-a1||Active development stage. Each alpha release contains one or more new features or fixes. During alpha breaking changes like DB schema updates are common.|
|beta||v2.0-b1||Planned features are complete. Each beta release contains fixes only, no breaking changes.|
|rc||v2.0-rc1||A rc is a beta that is potentially production ready. Each rc release contains fixes only, no breaking changes.|
|rtm||v2.0||An official release.|
|patch||v2.0.1||Bug fixes after an official release. A patch can go through alpha, beta and rc as well.|
|minor||v2.1||Next minor release. About 20 milestones away from v2.0.|
|major||v3.0||Next major release. It should bring major value to the product, not time bound.|
Based on that I came up with a Roadmap
- v1.0 - Minimal Viable Product (Oct 2017)
- v2.0 - Admin Panel (Dec 2018)
- v2.0-a1 - initial v2 alpha
- v2.0-a2 - feat: preview post in composer
- v2.0-a3 - feat: dnd images in composer
- v2.0-a4 - feat: social links
- v2.0-b1 - fixes
- v2.0-b2 - fixes
- v2.0-rc - fixes
- v2.1 - Featured image and a second theme
- v2.2 - Navigation
- v2.3 - Pages
- v2.4 - User roles
Finally I'm trying these out for now to see how it goes, as a result the time frame and planned features can change.