This document is a checklist for the release process of the dns-bench project.
- Ensure that the CHANGELOG.md contains all unreleased changes and adheres to the Keep a Changelog format.
- Ensure that the README.md and /docker/OVERVIEW.md contain all the necessary information about the new version.
- Ensure that the CONTRIBUTING.md is up to date with any new contribution guidelines or processes.
- Ensure that GitHub Actions checks are passing and MSRV is not changed, if changed update the badge in README.md, add the note into CHANGELOG.md and update
rust-versionproperty inside Cargo.toml. - Define a new version according to Semantic Versioning and update it inside the following files:
- Update the
versionproperty in Cargo.toml to the new version. - Update the tag version in Docker workflow to the new version.
- Rename
Unreleasedsection in CHANGELOG.md to the new version and current date. - Update the tag version inside installation section of README.md to the new version.
- Update the
- Rebuild Cargo.lock by running
cargo build. - Commit changes with message
v<version>. - Run
cargo publishto publish the crate to crates.io. - Push changes to the repository.
- Build executable file for Windows by running build-win-exe.sh script. Note that this build requires a certain rustup target and mingw linker to be present in the system. All required tools are already installed in the devcontainer.
- Manually test the Windows executable file to ensure it works correctly.
- Draft a new release on GitHub with the new version, changelog and Windows executable file attached.
- Manually run the workflow "build, test, and push multi-arch docker image" on the GitHub Actions page. This will build and push the new Docker image to Docker Hub.
- Update repository overview in Docker Hub.