From 84fa5736a4e07ea8480845b6f7a5f8526cff2b88 Mon Sep 17 00:00:00 2001 From: Tony Kuker <34318535+akuker@users.noreply.github.com> Date: Sat, 22 Apr 2023 19:38:56 -0500 Subject: [PATCH] Created Release Process (markdown) --- Release-Process.md | 130 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Release-Process.md diff --git a/Release-Process.md b/Release-Process.md new file mode 100644 index 0000000..30859ad --- /dev/null +++ b/Release-Process.md @@ -0,0 +1,130 @@ +# Verify that your username and email are configured properly +``` +# To see the current configuration +git config --global user.name +git config --global user. Email +``` +If you need to change the configuration, use the followingz; +``` +git config --global user.name "Homer Simpson" +git config --global user.email homer.j@simpson.com +``` + +# Update your local checkout and make sure its clean +``` +cd ~/piscsi +git checkout develop +git pull +git reset --hard HEAD +``` + +# Update the version number +``` +vim cpp/shared/piscsi_version.cpp +``` + +Change `piscsi_minor_version` to the current month number. Ex: April would be 4 + +Change `piscsi_patch_version` to the release number for that month. Typically, this will be 1, unless you're doing multiple releases in a month. + +Check that your changes are syntactically correct + +``` +cd cpp && make all -j4 +``` +# Commit the version and create the tag +``` +git commit -m "Update revision number for release" ./cpp/shared/rascsi_version.cpp +# Note that each of the tag name's numbers should be 2 characters +# Ex: the tag name for release 23.2.1 would be "v23.02.01 +git tag -a v23.04.01 -m "PiSCSI version 23.02.01" +git push origin v23.04.01 +``` + +# Update the version number on the develop branch +``` +git checkout develop +vim cpp/shared/piscsi_version.cpp +``` + +Change `piscsi_minor_version` to the NEXT month number. Ex: In April, we would set this to "5" for May + +Change `piscsi_patch_version` to -1. This is a flag that this is a development version. + +Check that your changes are syntactically correct + +``` +cd cpp && make all -j4 +# If this succeeds, commit to the develop branch +git commit -m "Update version for next development version" cpp/shared/piscsi_version.cpp +git push origin develop +``` + +# Update master with the new release +``` +git checkout master +git pull +# Merge in the new tag +git merge v23.04.01 +# Check that there are no conflicts (there shouldn't be) +git status +git push origin master +``` +# Draft the release notes +Navigate to https://github.com/PiSCSI/piscsi/releases and click Draft New Release + +Choose the new tag you just created. The release name should be **<> <> Release**. Example: [February 2023 Release](https://github.com/PiSCSI/piscsi/releases/tag/v23.02.01) + +Copy the first few sections of the previous release notes and update as appropriate. Re-generate the translation statistics, etc. + +Tag this as a pre-release! + +# Create the RPi Image +``` +cd ~ +git clone https://github.com/piscsi/piscsi-pi-gen +cd piscsi-pi-gen +``` + +Edit/create a configuration file +``` +vim config +``` +And example configuration file follows. Make sure you update the first two lines with the new version/tag ID. + +Remove the APT_PROXY option if you do not have a local AptCacher-NG instance set up. (The apt cacher NG will cache the apt packages to make subsequent builds go MUCH faster. However, it's not required) If you want to set one up, instructions are available in the [Ubuntu documentation](https://help.ubuntu.com/community/Apt-Cacher%20NG) +``` +IMG_NAME=PiSCSI-v22.12.01 +GITHUB_REF=v22.12.01 +TARGET_HOSTNAME=piscsi +ENABLE_SSH=1 +LOCALE_DEFAULT=en_US.UTF-8 +KEYBOARD_KEYMAP=us +KEYBOARD_LAYOUT="English (US)" +APT_PROXY=http://127.0.0.1:3142 +RELEASE=bullseye +USE_QEMU=0 +DISABLE_FIRST_BOOT_USER_RENAME=1 +FIRST_USER_NAME=pi +FIRST_USER_PASS=raspberry +``` + +# Install dependencies +See the pi-gen documentation for how to install of the dependencies to run this tool + +# Create the build +Stop the udisks2 service to improve your chances of the build succeeding +``` +sudo systemctl stop udisks2.service +cd ~/piscsi-pi-gen +sudo ./build.sh +``` + +Watch the build process in case it asks you for a password. _(Not sure if it still does that?)_ + +When the build is done, the artifacs will be in `~/piscsi-pi-gen/deploy/????` + +# Test the build + +# Review the release notes +Have the development team review the release notes as appropriate.