-
-
Notifications
You must be signed in to change notification settings - Fork 896
Library releases
-
Create a fresh clone of the repository:
git clone -o upstream [email protected]:mysensors/MySensors.git mysensors-release
-
Make sure to work on the most resent master version:
cd mysensors-release
git fetch upstream
-
Merge everything on
development
to a new branch named 'release':git checkout remotes/upstream/development
git checkout -b tmp
git merge -s ours remotes/upstream/master
git checkout remotes/upstream/master
git checkout -b release
git merge tmp
git branch -D tmp
-
Validate that the release branch is identical to the development branch:
git diff remotes/upstream/development
-
Update version info:
new_release=2.2.0
(change this)old_release=2.2.0-rc.1
(change this)sed -i "s/$old_release/$new_release/" library.json library.properties README.md
Validate that MAJOR/MINOR/PATCH values in
core/Version.h
are correctly set.sed -i "s/MYSENSORS_LIBRARY_VERSION_PRERELEASE_NUMBER\t0x[0-9A-FX][0-9A-FX]/MYSENSORS_LIBRARY_VERSION_PRERELEASE_NUMBER\t0xFF/" core/Version.h
-
Validate that the version has changed in all files:
git diff
-
Commit the changes as an amend to the merge commit:
git commit -am "MySensors $new_release release" --amend
-
Push the merge commit to origin:
git push upstream HEAD:release
-
On GitHub, create a pull request from the release branch and make sure it targets master (development is the default).
-
Wait for Jenkins to finish building. Jenkins will create a copy+paste friendly changelog when validating the pull request. You can get it by clicking the Details link next to the Toll gate (Release changelog) status checkpoint.
-
Once Jenkins finishes validating the pull request, and reviewers approve, ask for the pull request to be merged. Note: This merge should be a "Rebase and merge"
-
Draft a new release on GitHub here. Pick a tag name that matches the release and target 'master'. E.g. 2.2.0 @ master.
Set the title to the same as the tag.
Paste the changelog provided by Jenkins.
When satisfied, publish the release and make an announcement on the forum.