This document describes how Vue Storefront code versions are released. You'll learn how the release process looks like, what are the acceptance criteria, what is our git flow and which branch to use as a stable one.
How Vue Storefront versions are released
From version 1.9 we release each of VSF versions in two phases
- Release Candidate phase (RC) also called "feature version". This version contains all the new features, improvements and additions to the API along with minor bugfixes. New features and additions are merged and released only during this phase. The API of features introduced during this phase may slightly change.
- Stabilization phase is the one that ends up with production-ready version. During this phase we do only stabilization and bugfixing for previously introduced features. No new features and API additions are merged. PRs from RC version are tested and their API is simplified and/or adjusted according to feedback.
So assuming next version is 1.x the two-month cycle will look as following:
- v1.x-RC.y - unstable version with cutting-edge features ready to test and feedback
- v1.x.y - stable version of the software ready for production use.
How new features are merged
During RC features Pull Request with new features after feedback and acceptance are normally merged to
After entering the Stabilization Phase we are tagging current develop branch, creating a
x is a number of current version) branch from it and working on stabilization there.
During the stabilization phase new features are merged to develop branch and will be merged on next
Release cycle flow
1. Development phase
The first phase of cycle we're mostly focusing on features and improvements. Branches in that phase should be created from actual
develop, also PRs should be pointed to this branch. Changes merged to
develop are available to test on https://test.storefrontcloud.io
2. Release Candidate phase
At some point, when milestone for next minor versions is completed, we're creating new branch from
After that new branch is tagged as first RC for version (example
v1.9.0-rc.1). Then it's ready for testing by community.
During tests, feedback and stabilization there could be multiple Release Candidate versions on this branch. When improvement is made on this phase, then branch should be created from actual
release/vx.y and should not contain features at this point - only improvements for current release.
After merging a set of bugfixes and improvements into
release/* branch, it needs to be tagged as the next RC version and merged into the
develop branch, to update it.
3. Release phase
When RC version is stable, then release branch is merged into
master and tagged as next stable version (example
v1.9.0). After that currently merged release branch is deleted and starts new development phase. If some critical bug is discovered on current stable version, then new hotfix (for example
hotfix/v1.9.1, following Semantic Versioning rules) branch should be created from actual
master. After merging and testing hotfixes, this branch (like release branch before) is merged into
master and tagged following Semantic Versioning rules.
Important thing to notice is that this releasing cycle ensures stable and reliable Storefront releases. Phases are also not blocking new features - you can develop new features on any phase, but it should be merged only to
develop branch and go through whole cycle.