This release process is loosely based on the git-flow model with a few simplifications. Main differences are:
- Since releasing is a rapid process, long-lived release branches are not needed. Releases can be made directly from feature branches.
main
is the unstable development branch.
The release process has a lot of prerequisites, some of which are mentioned below:
- platformio command line tools
- terser (npm install -g terser)
- graphviz
- doxygen
- bump2version
The release process is as follows:
-
Create a new local feature branch
release_x.y.z
for the release. -
Bump the project version number with bumpversion.
The development version should be
x.y.z-alpha
. To bump tox.y.z
, usebumpversion release
. To bump the major or minor version, usebumpversion major
orbumpversion minor
.Bump2version always creates a new commit with the new version number.
-
Update the autogenerated web UI files and doxygen documentation:
scripts/update_autogen.sh
New commits are generated for the updated files.
-
Push the changes to your local fork.
-
Verify that everything looks OK in your fork.
Any release testing should happen now at this point.
-
Once everything is fine, create a PR against the
main
branch.Merge it.
-
Navigate to https://github.com/SignalK/SensESP/releases and click on "Draft a new release". Tag version is "vx.y.z". Title is ordinarily "Version x.y.z". Description would ideally be a listing of new features and bugfixes.
-
Notify PlatformIO about the new release. This command may create a new package based on your current worktree contents, so you need to clean your worktree or create a new one:
git clean -df # make sure you don't have any unchecked files you don't want to lose! platformio package publish --owner SignalK
You need suitable permissions to run the
pio package publish
command. If you don't have them, ask Matti Airas [email protected] for assistance. -
All that remains is to update the main branch version number to
x.y.z+1-alpha
. Create a newpost_release_x.y.z
. Runbumpversion patch
to bump the version to
x.y.z+1-alpha
.Push the new branch to your own fork, create a PR against
main
, and merge it.