unison/docs/release-steps.md
2021-09-27 12:51:36 -05:00

3.1 KiB

0

Communicate with core team - we are cutting a release now, are there any showstopping bugs that need fixing first?

1

Create and push the tag to github. This will trigger the build. To determine the last release, check the releases page.

git fetch
git checkout series/M2
git merge origin/trunk
git tag -a $RELEASE_NAME -m "release"

2

Wait for the release to show up on the releases page. This can take an hour or two!

3

Create a release notes draft issue, following this template.

4

Update trunk of base to include any new builtins added since last release. Suggestion for how to do this: look through the release notes draft to find the PRs merged since last release.

git log --oneline release/M2h...release/M2i | grep 'Merge pull request #'

Then just use alias.term ##Nat.newBuiltin Nat.someName and/or alias.type ##SomeType SomeType. I think this is probably better than doing builtins.merge at this point.

5

Cut a release of base.

.> pull https://unisonweb/base basedev.release
.> cd basedev.release
.basedev> delete.namespace releases._latest
.basedev> squash trunk releases._<ReleaseName>
.basedev> fork releases._<ReleaseName> releases._latest
.basedev> push git@github.com/unisonweb/base

6

Update homebrew.

git clone git@github.com/unisonweb/homebrew-unison

Update this file: https://github.com/unisonweb/homebrew-unison/blob/master/unison-language.rb and change the version number and the path to the release. Leave the SHA alone, and then run brew upgrade.

Do brew upgrade unison-language. It will tell you the SHA hash doesn't match. Update the file to use the hash it says. Do the same for linux and mac - you can temporarily swap the mac / linux stanzas just to get the

7

Merge and promote to production any PRs pending on the docs site which are associated with the new release. Confirm with @rlmark.

8

Announce on #contrib Slack channel. Template below.


Release announcement template -

We've just released a new version of Unison, $RELEASE_NAME, release notes here (link to the issue). Install/upgrade instructions in the thread.

Mac upgrade is just brew upgrade unison-language.

A fresh install via:

brew tap unisonweb/unison
brew install unison-language

If you have previously done brew install unison-language --head to install a dev build, uninstall that first via brew uninstall unison-language.

Linux manual install:

mkdir unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/download/release%2FM2h/ucm-linux.tar.gz --output unisonlanguage/ucm.tar.gz
tar -xzf unisonlanguage/ucm.tar.gz -C unisonlanguage
./unisonlanguage/ucm

Mac manual install:

mkdir unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/download/release%2FM2h/ucm-macos.tar.gz --output unisonlanguage/ucm.tar.gz
tar -xzf unisonlanguage/ucm.tar.gz -C unisonlanguage
./unisonlanguage/ucm