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.0-rtm
- 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.