Update the release process docs
@@ -9,29 +9,31 @@ simplifications. Main differences are:
- `latest` is the last released version. Releases must be tagged from
this branch.
-The release process is as follows:
+The release process has a lot of prerequisites, some of which are mentioned below:
-1. Create a new local feature branch for the release.
+- platformio command line tools
+- terser (npm install -g terser)
+- graphviz
+- doxygen
+- bump2version
-2. Bump the version number in `Doxyfile`, `library.properties` and
- `library.json`.
+The release process is as follows:
- Commit the changes.
+1. Create a new local feature branch `release_x.y.z` for the release.
-2. Update autogenerated html and js source files:
+2. Bump the project version number with [bumpversion](https://pypi.org/project/bump2version/).
- pio run -e esp32dev -t webUI
+ 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`.
- Remember to commit the results.
+ Bump2version creates always a new commit with the new version number.
-3. Update the Doxygen docs (first bump the version number in `Doxyfile`). To
- run Doxygen, you need to have Graphviz installed on your system. It is
- available on your favorite package manager on any Linux distribution or Mac.
+3. Update the autogenerated web UI files and doxygen documentation:
- rm -rf docs/generated/docs/
- doxygen
+ scripts/update_autogen.sh
- Again, commit the changes.
+ New commits are generated for the updated files.
4. Push the changes to your local fork.
@@ -58,7 +60,12 @@ The release process is as follows:
You need suitable permissions to run the `pio package publish` command. If
you don't have them, ask Matti Airas <mairas@iki.fi> for assistance.
-8. All that remains is to update the master branch. Create a new branch based
- on `latest`. Bump version numbers to `x.y.z+1-alpha` (e.g.
- from 1.0.5 to 1.0.6-alpha). Push the new branch to your own fork,
+8. All that remains is to update the master branch. Create a new `release_x.y.z_to_master` branch based
+ on `latest`. Run
+
+ bumpversion release
+
+ to bump the version to `x.y.z+1-alpha`.
+
+ Push the new branch to your own fork,
create a PR against `master` and merge it.
