Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 2.29 KB

RELEASE_PROCESS.md

File metadata and controls

67 lines (42 loc) · 2.29 KB

SensESP Release Process

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:

  1. Create a new local feature branch release_x.y.z for the release.

  2. Bump the project version number with bumpversion.

    The development version should be x.y.z-alpha. To bump to x.y.z, use bumpversion release. To bump the major or minor version, use bumpversion major or bumpversion minor.

    Bump2version always creates a new commit with the new version number.

  3. Update the autogenerated web UI files and doxygen documentation:

    scripts/update_autogen.sh
    

    New commits are generated for the updated files.

  4. Push the changes to your local fork.

  5. Verify that everything looks OK in your fork.

    Any release testing should happen now at this point.

  6. Once everything is fine, create a PR against the main branch.

    Merge it.

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

  8. 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.

  9. All that remains is to update the main branch version number to x.y.z+1-alpha. Create a new post_release_x.y.z. Run

    bumpversion 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.