-
-
Notifications
You must be signed in to change notification settings - Fork 894
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/master
git checkout -b release
git merge remotes/upstream/development --ff-only
-
Update version info:
new_release=2.2.0
(change this)old_release=$(grep version library.properties | cut -f2 -d=)
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:
git commit -am "MySensors $new_release release"
-
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 "Create a merge commit"
-
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.
Add some relevant release notes (highlight significant changes).
Paste the changelog provided by Jenkins.
When satisfied, publish the release and make an announcement on the forum.
A list of contributors can be generated with
git log 2.1.1...HEAD --format="%aN" | sort | uniq -c
where 2.1.1 is the tag for the last release. -
Delete the release branch (using command line or at https://github.com/mysensors/MySensors/branches )