-
-
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' as a merge commit:git checkout remotes/upstream/master
git checkout -b release
git merge remotes/upstream/development --no-ff
-
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
-
Amend the merge commit with the changes:
git commit -am "MySensors $new_release release" --amend
-
Push the merge commit to origin:
git push upstream HEAD
-
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, update the master branch: Note: Do not use GitHub web interface to do this merge
git push upstream HEAD:master --ff-only
-
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 )
-
Fetch the updates from GitHub:
git fetch upstream
- Create a commit with the next alpha release on development:
git checkout upstream/development
git checkout -b new-dev
new_release=2.2.1-alpha
(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\t0x00/" core/Version.h
- Validate that the version has changed in all files:
git diff
- Create a commit with the new development version
git commit -am "Development version $new_release"
- Push the new version branch and create a PR on GitHub:
git push upstream HEAD