From 0cf3d4f3a690035835eff3f082409ab8af3125a2 Mon Sep 17 00:00:00 2001 From: Rune Morling Date: Thu, 29 Feb 2024 19:29:08 +0100 Subject: [PATCH] Add RELEASE.md integration and release testing doc The intent is for us to have a uniform and rigorous release testing process to minimise the chances of bad releases sneaking into production. Also add `solbuild` to .gitignore Signed-off-by: Rune Morling --- .gitignore | 1 + RELEASE.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 RELEASE.md diff --git a/.gitignore b/.gitignore index 4ce8181..e48691b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /bin/ /pkg/ +solbuild diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..27cc8fe --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,33 @@ +# Cutting a Release + +To ensure that we have a uniform release process, the current recommendation is to tag the release, then do the following integration tests below. + +The idea is to thoroughly exercise commands, flags and known pain points re. package fetching before builds. + +## Integration tests + +- `git switch master && git pull && git switch the-the-new-tag && go build` (does the new release build from its tag commit?) +- `alias soltest="sudo $PWD/solbuild" && command -v soltest` (ensure we have a convenient full path to the item under test) +- `soltest dc -d -i` (delete cache and existing solbuild images on the default unstable profile) +- `soltest init -d -u -p unstable-x86_64` (initialise Unstable profile) +- `soltest dc -n -i -p main-x86_64` (delete cache and existing solbuild images on the stable Shannon profile) +- `soltest init -n -u -p main-x86_64` (initialise Shannon profile) +- `sudo rm -rvf /var/lib/solbuild/local/*` (delete local repo packages) +- `gotosoluspkgs && gotopkg zlib && soltest build -n -p main-x86_64 > zlib-stable.log` (build zlib using the stable profile w/no color output) +- `soltest -d -n chroot -p main-x86_64` (chroot into the stable build built above) +- `soltest build -d && sudo cp zlib*eopkg /var/lib/solbuild/local/ && soltest index /var/lib/solbuild/local` (buuild unstable zlib w/debug option and copy to build to local repo) +- `soltest index -d -n /var/lib/solbuild/local/` (create an eopkg index in the local profile dir) + +## Packaging tests + +After the above integration testing has been completed, build the following packages with the `soltest` alias defined above: + +- zsh, giflib and glew (they all use SourceForge mirrors, which can be a bit ... "particular") +- android-tools (exercises git-submodule functionality) + +## Land the newly cut and tagged solbuild release in -unstable + +Assuming all of the above packages build successfully, proceed to bump and update the solbuild package.yml on -unstable. + +The release manager should then use the repository version to do a quick smoketest for zlib on both main-x86_64 profile and default profile, +using the `go-task` aliases.