diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 372f2a48..1e5b036e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,6 +6,89 @@ feature. Raise issues and feature requests in the GitHub [issue tracker](https://github.com/fujiapple852/trippy/issues) and raise all changes as GitHub [pull requests](https://github.com/fujiapple852/trippy/pulls). +## Release instructions + +Instructions for releasing a new `0.xx.0` version of Trippy. + +### Prerequisites + +- Update the `README.md` for the new version +- Update the `CHANGELOG.md` for the new version +- Update the `RELEASES.md` for the new version +- Update the version to `0.xx.0` in `Cargo.toml`, `snap/snapcraft.yaml` & `ubuntu-ppa/release.sh` + +### Github release + +- Tag the release with the version number `0.xx.0` and push the tag to GitHub: + +```shell +git tag 0.xx.0 +git push origin tag 0.xx.0 +``` + +- Copy the release details from `RELEASES.md` and `CHANGELOG.md` to the GitHub release page + +### Crates.io + +- Publish all crates to crates.io (in order): + +```shell +cargo publish trippy-dns +cargo publish trippy-packet +cargo publish trippy-privilege +cargo publish trippy-tui +cargo publish trippy +``` + +### Docker + +From the repository root directory: + +```shell +docker build . -t fujiapple/trippy:0.xx.0 -t fujiapple/trippy:latest +docker push fujiapple/trippy:0.xx.0 +docker push fujiapple/trippy:latest +``` + +### Snapcraft + +- Promote the first `0.xx.0` build to the `latest/stable` channel from the + Snapcraft [releases](https://snapcraft.io/trippy/releases) page + +### Winget + +- Download the latest release Windows `zip` from + the [GitHub releases page](https://github.com/fujiapple852/trippy/releases/latest) +- Determine the SHA256 checksum of the release: + +```shell +shasum -a 256 trippy-0.xx.0-x86_64-pc-windows-msvc.zip +``` + +- Update the `winget` [fork](https://github.com/fujiapple852/winget-pkgs) to the latest upstream +- Checkout the fork and create a branch called `fujiapple852-trippy-0.xx.0` +- Go to the Trippy directory + +```shell +cd winget-pkgs/manifests/f/FujiApple/Trippy +``` + +- Copy the previous `0.yy.0` directory to a new directory for the new `0.xx.0` version +- Update the `PackageVersion`, `ReleaseDate` and update all paths to the new version +- Update the `InstallerSha256` with the checksum from the previous step +- Update the release notes from [CHANGELOG.md](https://github.com/fujiapple852/trippy/blob/master/CHANGELOG.md) +- Commit the changes with message: + +```text +update fujiapple852/trippy to 0.xx.0 +``` + +- Push the branch to the fork and create a pull request against the upstream `winget-pkgs` repository + +### Ubuntu PPA + +See the Ubuntu PPA [README.md](https://github.com/fujiapple852/trippy/blob/master/ubuntu-ppa/README.md) + ## Help wanted There are several the issues tagged