-
Notifications
You must be signed in to change notification settings - Fork 119
Releasing a New Version
Complete ./CHANGELOG.md
with changes done since the last published release. Place the changes under the top section labeled ## Not yet released
. Create the section if necessary.
Use the list of recent PRs or something like git log v0.41.0..master --merges --pretty="%s%n%b%n"
to craft the log. Use a natural language to describe the changes. It should be clear to xoders.
Make a PR with updated changelog to perform review.
-
Set env var to be used later in the process (given the version to release is 0.42.0):
export XOD_NEW_VERSION=0.42.0
-
Create a release branch:
git checkout -b release-${XOD_NEW_VERSION:?}
-
Update versions in various
package.json
snpm run lerna -- publish --skip-git --skip-npm --cd-version minor
(use
--cd-version patch
if it is a hotfix release)
- Replace
## Not yet released
title with new version number and today date.
-
Bump all library versions in
workspace/__lib__/xod/*/project.xod
to matchXOD_NEW_VERSION
../tools/bump-workspace-lib-versions.sh
-
Complete the local part of the process
git commit --all --message "chore(infra): release $XOD_NEW_VERSION" git tag v${XOD_NEW_VERSION}
-
Push the release branch to the origin
git push origin release-${XOD_NEW_VERSION}
-
Open a PR of
release-0.42.0
tomaster
Release 0.42.0
A formal PR, part of the [release procedure](https://github.com/xodio/xod/wiki/Releasing-a-New-Version).
-
Wait for review approvals and CI verification (make the PR green)
-
Push the tag to the origin. This would start building new distros on CI servers.
git push origin v${XOD_NEW_VERSION}
-
Merge the PR. This would start building new docker images on CI servers.
yarn build && ls -d ./packages/* | grep -v "client" | xargs -I {} npm publish {}
-
For each library in
./workspace/__lib__/xod*
do axodc publish
on behalf of respective user:export XOD_USERNAME="your_xodio_username" export XOD_PASSWORD="your_xodio_password" ./tools/publish-stdlib.sh
(Check that all
xod*
libraries on https://xod.io/libs/?q=owner%3Axod, https://xod.io/libs/?q=owner%3Axod-dev etc have the new version.)
See private wiki.
See private wiki.
- Use plain 0.42.0 as the release title (no leading v)
- Point the release to the tag
v0.42.0
@master
- Copy the relevant section of changelog to the release description
- Close the milestone
- Archive all cards on the project board
- Create and protect a new maintenance branch
0.42.x
- Remove old maintenance branches
- Create new topic on the forum
- Mention the release in relevant open threads
- Announce on Twitter
- Announce on Facebook
- Announce via e-mail
- Announce on arduino.cc forum
- Announce on reddit