-
-
Notifications
You must be signed in to change notification settings - Fork 896
Library releases
-
Create two fresh clones of the repository:
git clone -o upstream [email protected]:mysensors/MySensors.git -b master release
git clone -o upstream [email protected]:mysensors/MySensors.git -b development development
Development clone is just for reference to validate the merge.
-
Make sure to work on the most resent master version:
cd release
git fetch upstream
git checkout remotes/upstream/master
-
Create a release branch:
git checkout -b release
-
Merge everything on
development
to the new branch:git merge -X theirs remotes/upstream/development
-
Validate that the release branch is identical to the development branch:
git diff remotes/upstream/development
You can also use a diff tool of your choise to compare the two clones, and make sure that the release repo is identical to the development repo before continuing.
-
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 something to fix MYSENSORS_LIBRARY_VERSION_PRERELEASE_NUMBER
-
Commit the merge:
git commit -am "MySensors $new_release release"
-
Push the merge 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.