Zephyr utilizes familiar versioning concepts by adopting SemVer (Semantic Versioning) as its foundational versioning methodology, ensuring a systematic and meaningful progression of project versions.
Applications deployed through Zephyr could have unlimited number of versions. After you configure Zephyr's npm plugin in your build tool, or bundlers, each successful deployment would generate a new version.
Semantic versioning is structured as MAJOR.MINOR.PATCH
:
To streamline the tagging process and ensure seamless integration with continuous integration and delivery (CI/CD) pipelines, Zephyr adopts specific rules for generating tags based on branch names during CI processes. This approach not only automates tag creation but also aligns with the development workflow to accurately reflect the state of the software at any given point.
On your first successful build, we find below two values to generated a tag:
After the first successful build, each build's version fits in these two criteria will be attached as latest version under this tag.
On Zephyr's Dashboard, you can find Tags under each application's Settings page.
After clicking on Create Tag, you will need to input a Tag name and choose rules under Tag conditions. Currently four related rule sets are available:
User
Version
Branch
CI
You can select a combination of rule set by clicking on + Add under Tag conditions.
Take an example, you just created a new tag rule with 3 rules:
Zack's deployment, version 200 under the branch "fix-ui" will be locked into this tag. Since the version rule is set to a fixed version.
Under application's Settings page select Tags and then the desired Tag name you want to edit.
Click on + Add button to add new rules, edit or delete pre-existing rules.
When code is pushed through a CI pipeline, tags are dynamically assigned based on the branch from which the push originates:
master
or main
branches: Automatically tagged as latest
. This tag is used for the most stable, production-ready version of the application.development
branch: Assigned the next
tag. This is used for pre-release versions that may still be under active development but are stable enough for testing purposes.For manual pushes (i.e., those not done through a CI pipeline), the tagging format incorporates the branch name followed by the username of the developer who made the push. This format is particularly useful for:
These tagging strategies ensure that every build on Zephyr can be uniquely identified and correlated with its source, enhancing both the development process and version control.