Merge #1074: Document the release process

d80dba048c2a020e6b0ce191d1470bdb0a82c148 doc: document the release process in a new document (Antoine Poinsot)
187857f106d639246f70278d4a55422f89014fd1 README: add a link to our Discord (Antoine Poinsot)

Pull request description:

  This document a bunch of stuff i've been doing for every release in the past years. I've detailed it in a number of steps for clarity.

  Fixes https://github.com/wizardsardine/liana/issues/803.

ACKs for top commit:
  edouardparis:
    ACK d80dba048c2a020e6b0ce191d1470bdb0a82c148

Tree-SHA512: c9f166c1ecfc595fcc3cd34d8603f6f2a67747625847e745fde5846dc5e687f04ac2e57886949f3f620ff1a55c40dc398cabc3013f058ddf70e00c73f3ec5922
This commit is contained in:
edouardparis 2024-05-24 13:48:22 +02:00
commit 592d1af8fd
No known key found for this signature in database
GPG Key ID: E65F7A089C20DC8F
2 changed files with 51 additions and 2 deletions

View File

@ -45,8 +45,11 @@ If you just want to quickly try out Liana on Bitcoin Signet, see [`doc/TRY.md`](
## Hacking on Liana
Liana is an open source project. It is [hosted at Github](https://github.com/wizardsardine/liana).
Contributions are very welcome. See [here](CONTRIBUTING.md) for guidelines. Liana is separated in
two main components: the daemon and the Graphical User Interface.
Contributions are very welcome. See [here](CONTRIBUTING.md) for guidelines. Most regular
contributors hang out on [our Discord](https://discord.gg/9rAqZHwkv6). Join us there if you have any
question about contributing.
Liana is separated in two main components: the daemon and the Graphical User Interface.
#### Liana daemon

46
doc/RELEASE.md Normal file
View File

@ -0,0 +1,46 @@
This document details the release process.
- First bump the version of the Liana daemon/library in master. Don't forget the release script.
(Example: [the PR for v5](https://github.com/wizardsardine/liana/pull/1034).)
- Update the [`CHANGELOG.md`](../CHANGELOG.md) in master with the release notes for this release.
(Example: [the PR for v5](https://github.com/wizardsardine/liana/pull/1034).)
- Bump the version of the GUI in master to get the version bump from the Liana library (this needs
the version bump of the Liana library to have been merged in master). (Example: [the PR for
v5](https://github.com/wizardsardine/liana/pull/1036).)
- Create a new branch forking from master dedicated to this release and the following point
release(s): `MAJOR.x`. (For instance `5.x` for v5.)
- Update the version of the Liana daemon/library in this branch to use the `-rc1` suffix for the
version string. (Don't forget the release script.) (Example: [the PR for
v5](https://github.com/wizardsardine/liana/pull/1037).)
- Update the GUI to use the latest version of this branch. Don't forget to update both the
Cargo.toml and the reproducible build. Don't forget to `cargo build` after `cargo update -p
liana`. (Example: [the PR for v5](https://github.com/wizardsardine/liana/pull/1038).)
- Make sure the documentation is up to date (build doc, usage doc, `TRY.md`, etc..)
- Create a `vA.Brc1` tag on this branch and push it to the Github repo.
- Make a reproducible release build on this tag using the
[`contrib/release/release.sh`](../contrib/release/release.sh) script. Don't forget to set the
`VERSION` and `MAC_CODESIGN` variables appropriately if they aren't already.
- Publish a pre-release for this tag on Github (https://github.com/wizardsardine/liana/releases)
with the reproducibly built binaries.
- If bugs are discovered when testing the release candidate, fix them in master and backport them to
the release branch. (Example: [this PR for v5](https://github.com/wizardsardine/liana/pull/1066).)
- If needed, repeat this process with new release candidates.
- Update documentation material where the former version is mentioned as being the latest.
- If applicable, update other documentation material (for instance the list of supported signing
devices).
- Remove the "rc" suffix in the version string on the release branch. Don't forget the release
script. (Example: [this PR for v5](https://github.com/wizardsardine/liana/pull/1067).)
- Update the Liana version in the GUI to the latest of the release branch. (Don't forget to `cargo
build` after having `cargo update -p liana`.)
- Create a new `vA.B` tag on the tip of the release branch. Don't forget to sign the tag and include
the release notes.
- Make a reproducible release build for this tag.
- Create a Github release for this tag. Don't forget to include the release notes as well as
instructions on what binaries a user should pick.
- If necessary, write a companion blog post on [the blog](https://wizardsardine.com/blog/), update
the link to the binaries on [the website](https://wizardsardine.com/liana/), brag on social
medias.
- If possible push the Liana library to [crates.io](https://crates.io).
- Update the package managers with the new version. As of this writing we only update the [AUR
package](https://aur.archlinux.org/packages/liana-bin) ourselves.
- Celebrate.