diff --git a/RELEASE.md b/RELEASE.md index 27cc8fe..55a687c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,33 +1,142 @@ -# Cutting a Release +Perform the following steps after tagging the Solbuild release in order to verify that it introduces no major regressions: -To ensure that we have a uniform release process, the current recommendation is to tag the release, then do the following integration tests below. +- Build and install a local update of the solbuild package: + ``` + gotosoluspkgs + gotopkg solbuild + yupdate X.Y.Z https://github.com/getsolus/solbuild/archive/refs/tags/vX.Y.Z.tar.gz + go-task + sudo eopkg it *.eopkg + ``` -The idea is to thoroughly exercise commands, flags and known pain points re. package fetching before builds. +- Ensure the version number is correct: + ``` + solbuild version + ``` + Verify that this shows the correct version number. -## Integration tests +- Delete cache and existing solbuild images: + ``` + sudo solbuild dc -dai + ``` -- `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) +- Initialise unstable profile: + ``` + sudo solbuild init -du + ``` + Verify that this uses the unstable profile. -## Packaging tests +- Initialise Shannon profile: + ``` + sudo solbuild init -nup main-x86_64 + ``` + Verify that this shows non-colored output. -After the above integration testing has been completed, build the following packages with the `soltest` alias defined above: +- Delete local repo: + ``` + sudo rm -rvf /var/lib/solbuild/local/* + ``` +- Build `zlib` against stable without colored output: + ``` + gotosoluspkgs + gotopkg zlib + sudo solbuild build -n -p main-x86_64 > zlib-stable.log + ``` + Verify that this shows non-colored output. -- zsh, giflib and glew (they all use SourceForge mirrors, which can be a bit ... "particular") -- android-tools (exercises git-submodule functionality) +- Chroot into the build environment: + ``` + sudo solbuild -d -n chroot -p main-x86_64 + ``` +- Build zlib against unstable and copy to local repo: + ``` + sudo solbuild build -d + sudo cp zlib*.eopkg /var/lib/solbuild/local/ + ``` -## Land the newly cut and tagged solbuild release in -unstable +- Index the local repo: + ``` + sudo solbuild index -d /var/lib/solbuild/local/ + ``` -Assuming all of the above packages build successfully, proceed to bump and update the solbuild package.yml on -unstable. +- Build the test set of packages: + ``` + for p in android-tools giflib glew zsh + do + sudo solbuild build >> /tmp/builds.log + done + ``` -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. +If all of the above completes successfully, proceed to `go-task publish` the Solbuild update. +``` + +Rendered version: +--- + +Perform the following steps after tagging the Solbuild release in order to verify that it introduces no major regressions: + +- Build and install a local update of the solbuild package: + ``` + gotosoluspkgs + gotopkg solbuild + yupdate X.Y.Z https://github.com/getsolus/solbuild/archive/refs/tags/vX.Y.Z.tar.gz + sudo eopkg it *.eopkg + ``` + +- Ensure the version number is correct: + ``` + solbuild version + ``` + Verify that this shows the correct version number. + +- Delete cache and existing solbuild images: + ``` + sudo solbuild dc -dai + ``` + +- Initialise unstable profile: + ``` + sudo solbuild init -du + ``` + Verify that this uses the unstable profile. + +- Initialise Shannon profile: + ``` + sudo solbuild init -nup main-x86_64 + ``` + Verify that this shows non-colored output. + +- Delete local repo: + ``` + sudo rm -rvf /var/lib/solbuild/local/* + ``` +- Build `zlib` against stable without colored output: + ``` + gotosoluspkgs + gotopkg zlib + sudo solbuild build -n -p main-x86_64 > zlib-stable.log + ``` + Verify that this shows non-colored output. + +- Chroot into the build environment: + ``` + sudo solbuild chroot -dnp main-x86_64 + ``` +- Build zlib against unstable and copy to local repo: + ``` + sudo solbuild build + sudo cp zlib*.eopkg /var/lib/solbuild/local/ + ``` + +- Index the local repo: + ``` + sudo solbuild index -d /var/lib/solbuild/local/ + ``` + +- Build the test set of packages: + ```bash + for p in android-tools giflib glew zsh + do + gotopkg $p + sudo solbuild build >> /tmp/builds.log + done