Skip to content

Commit

Permalink
Merge pull request #535 from hannobraun/release
Browse files Browse the repository at this point in the history
Update release procedure
  • Loading branch information
hannobraun committed May 5, 2022
2 parents 4143441 + e76ed4c commit c84528d
Showing 1 changed file with 31 additions and 28 deletions.
59 changes: 31 additions & 28 deletions RELEASES.md
Expand Up @@ -3,39 +3,36 @@
This document explains the release procedure. It is only relevant for maintainers.


## 1. Create release branch: `git switch -c v0.1.2`

Replace `0.1.2` in that command with the actual version.
## 1. Create release branch

```
git switch -c release
```

## 2. Update changelog

Add a changelog entry for the new version. Use the entry for the previous version as a template. Remember to thank first-time contributors.
Add a changelog entry for the new version. Use the entry for the previous version as a template. Remember to thank the contributors.

The list of pull request since the last release is available here:
https://github.com/hannobraun/Fornjot/pulls?q=is%3Apr+is%3Aclosed+merged%3A%3E2022-01-27

Replace `2022-01-27` at the end of that URL with the day before the previous release.
https://github.com/hannobraun/Fornjot/pulls?q=is%3Apr+merged%3A%3E2022-01-25+sort%3Acreated-asc

For the version after `0.5.0`, add the following to the changelog:
- Replace "Host Application" title with crate name: `fj-app`
- Convert title of each crate section into link to crate on crates.io.
- Add one-sentence description of the respective crate to each section.
- Link to all Weekly Dev Logs that cover the release.

Update these instructions, once this has been done.
Replace the date near the end of that URL with the day before the previous release.

Commit these changes: `git commit -m "Update changelog"`


## 3. Write release announcement

Use the previous release announcement as a template. Once finished, publish it on the website, such that it is reachable under the correct URL, but not listed on the Blog page.
Use the previous release announcement as a template, but make the following changes:

1. Place the directory in the `static/blog/` instead of `content/blog/`.
2. Move the `index.md` file to `content/release.md`.
2. Remove the `date` key from the Markdown front matter.
3. Add a `path` key to explicitly specify the path.

- Figure out how to do that, document it here.
- In addition to what's in the last release announcement, add a call to report bugs near the top, right below the summary.
The path should be identical to where the page would be, if it were added to `content/blog/`. This will result in the page being and all static assets being available at their final URLs, without the page being listed on the blog page, or being picked up by the Atom/RSS feed.

Remember to thank everyone who contributed to the release.
Deploy the release announcement in this form to the website.


## 4. Update versions
Expand All @@ -45,29 +42,35 @@ In the release branch, update the version numbers in the `Cargo.toml` files of a

## 5. Publish the release

Push the release branch and create a pull request and label it as `release`. Once the CI build completed successfully, merge the pull-request and mention the new version in the commit, e.g. `Release v0.1.2`.
Push the release branch, create a pull request, and label it as `release`. Once the CI build completed successfully, merge the pull-request and mention the new version in the commit, e.g. `Release v0.1.2`.

The [release-operator](./tools/release-operator) will run in the scope of GitHub Actions' [CD](./.github/workflows/cd.yml) workflow. It will yield a set of compiled binaries, their checksums and a new GitHub Release with all artifacts attached.

Next, publish the release by running `cargo publish` for each crate.
It will also `cargo publish` all crates to [crates.io](https://crates.io/).


## 6. Update release on GitHub

The GitHub Release has been created by automation in the previous step. Use the previous release as a template to populate its body.
The GitHub Release has been created by automation in the previous step. Copy the release announcement from the website (in HTML form), using the following procedure:

Make the following changes, compared to the release for version `0.5.0`:
- Link to release announcement on the website at the top. Mention that people can subscribe there.
- Copy the full content of the release announcement.

Once this has been done, update these instructions.
1. Take contents of `<main>`
2. Replace `href="/` with `href="https://www.fornjot.app/`.
3. Replace `src="/` with `src="https://www.fornjot.app/`.
4. Added note up top, linking to the release announcement on the website.


## 7. Finish publishing release announcement

Make it so that is appears on the Blog page.
To publish the release on the website properly, do the following:

1. Move the directory with the static assets to `content/blog/`.
2. Move `content/release.md` to the directory with the other assets, as `index.md`.
3. Add the `date` key to the front matter.
4. Remove the `path` key.

Now the announcement should show up on the blog page and the Atom/RSS feed.

Figure out how to do that, then publish the instructions here.
Deploy the announcement to the website.


## 8. Promote release announcement
Expand Down

0 comments on commit c84528d

Please sign in to comment.