unison/docs/release-steps.md

103 lines
3.1 KiB
Markdown
Raw Normal View History

2021-09-27 20:51:36 +03:00
__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](https://github.com/unisonweb/unison/releases).
```
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](https://github.com/unisonweb/unison/releases). This can take an hour or two!
__3__
Create a release notes draft issue, following [this template](https://github.com/unisonweb/unison/issues/2342).
__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](https://github.com/unisonweb/unisonweb-org/pulls) 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
```