mirror of
https://github.com/unisonweb/unison.git
synced 2024-10-04 05:37:14 +03:00
90 lines
3.0 KiB
Markdown
90 lines
3.0 KiB
Markdown
# Release Steps
|
|
|
|
## 1. (Major milestones only) New Base Release
|
|
|
|
Cut a release of base. @runarorama does this usually.
|
|
|
|
|
|
```
|
|
.> pull git(git@github.com:unisonweb/base) basedev.release
|
|
.> cd .basedev.release
|
|
.basedev.release> delete.namespace releases._latest
|
|
.basedev.release> squash trunk releases._<ReleaseName>
|
|
```
|
|
|
|
Edit `releases._<ReleaseName>.README` to include `Release: <ReleaseName>`.
|
|
|
|
```
|
|
.basedev.release> fork releases._<ReleaseName> releases._latest
|
|
.basedev.release> push git(git@github.com:unisonweb/base)
|
|
```
|
|
|
|
## 2. Run Release script
|
|
|
|
* **Milestone Release**: Look up the most recent release; bump the number and remove any trailing letters, e.g. `./scripts/make-release release/M5 trunk`
|
|
* **Minor Release**: Increment the trailing letter of the previous release, or add an `a` to the previous milestone release, e.g. `./scripts/make-release release/M5a trunk`
|
|
|
|
Then, using the new release version, from the root of the `unisonweb/unison` project run:
|
|
|
|
```sh
|
|
./scripts/make_release.sh <VERSION> [TARGET (defaults to trunk)]
|
|
```
|
|
|
|
This will tag the appropriate versions in all the required projects, and kick off all of the necessary CI jobs to ship a release.
|
|
|
|
Including:
|
|
|
|
* A release workflow in `unisonweb/unison` to build UCM on multiple platforms, create a release with appropriate release notes from the previous release, and upload the artifacts to that release.
|
|
* A release workflow in `unison-local-ui` to build UCM on multiple platforms, create a release with appropriate release notes from the previous release, and upload the artifacts to that release.
|
|
* A release workflow in `homebrew-unison` to wait for artifacts to be uploaded, then download those artifacts, get the checksums, and create an up-to-date homebrew formula.
|
|
|
|
After successfully executing the script you just have to sit tight and wait for all the jobs to complete.
|
|
|
|
## 3
|
|
|
|
Smoke test of the new release. Try `brew upgrade unison-language`, launch it, launch `ui`.
|
|
|
|
## 4
|
|
|
|
Write up release notes, template below.
|
|
|
|
Preview the markdown in Slack #general and tag @paul.
|
|
|
|
## 5
|
|
|
|
If there are new builtins, redeploy Share.
|
|
|
|
## 6
|
|
|
|
Announce on #general Discord channel.
|
|
|
|
---
|
|
|
|
@everyone We've just released a new version of Unison, $RELEASE_NAME.
|
|
|
|
---
|
|
|
|
**macOS or Linux w/ Homebrew:**
|
|
Install or upgrade is just `brew upgrade unisonweb/unison/unison-language`.
|
|
|
|
**macOS or Linux manual install:**
|
|
macOS
|
|
```
|
|
mkdir -p unisonlanguage && cd unisonlanguage
|
|
curl -L https://github.com/unisonweb/unison/releases/latest/download/ucm-macos.tar.gz \
|
|
| tar -xz
|
|
./ucm
|
|
```
|
|
Linux
|
|
```
|
|
mkdir -p unisonlanguage && cd unisonlanguage
|
|
curl -L https://github.com/unisonweb/unison/releases/latest/download/ucm-linux.tar.gz \
|
|
| tar -xz
|
|
./ucm
|
|
```
|
|
|
|
**Windows manual install:**
|
|
* Recommended: [Set your default Terminal application](https://devblogs.microsoft.com/commandline/windows-terminal-as-your-default-command-line-experience/) to “Windows Terminal”.
|
|
* Download [the release](https://github.com/unisonweb/unison/releases/download/release%2FM5h/ucm-windows.zip) and extract it to a location of your choosing.
|
|
* Run `ucm.exe`
|