mirror of
https://github.com/unisonweb/unison.git
synced 2024-10-04 13:47:26 +03:00
103 lines
3.1 KiB
Markdown
103 lines
3.1 KiB
Markdown
|
|
||
|
__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
|
||
|
```
|