Releasing the OS Migrate collection

Set env vars with old and new versions:

OLD_VERSION=$(./toolbox/run bash -c 'cat os_migrate/galaxy.yml | shyaml get-value version')
echo "OLD_VERSION=$OLD_VERSION"

NEW_VERSION="SOME.NEW.VERSION"

Edit the version in galaxy.yml and any hardcoded values in functional tests:

sed -i -e "s/^version: $OLD_VERSION/version: $NEW_VERSION/" ./os_migrate/galaxy.yml
grep -lr "os_migrate_version: $OLD_VERSION" ./tests | xargs sed -i -e "s/^os_migrate_version: $OLD_VERSION/os_migrate_version: $NEW_VERSION/"

A build is required to update const.py:

./toolbox/run make

Create a pull request with these changes. Once it’s merged, check out the merge commit and release to galaxy:

git checkout $MERGED_COMMIT
./toolbox/run ./scripts/publish.sh -k <YOUR_GALAXY_TOKEN>

After a successful release, create a tag on the commit you built the release from, and push the tag to the upstream repo:

git tag -m "$NEW_VERSION" "$NEW_VERSION"
# assuming the os-migrate upstream repo is named 'upstream' in your repo clone
git push upstream --tags

If you’ve incremented “X” or “Y” in “X.Y.Z” version scheme, create also a stable branch to allow us to create “.Z” releases:

STABLE_VERSION=$(awk -F. '{ print $1 "." $2; }' <<<"$NEW_VERSION")
git checkout -b stable/$STABLE_VERSION
git push upstream stable/$STABLE_VERSION