Created Release Process (markdown)

Tony Kuker 2023-04-22 19:38:56 -05:00
parent 1d9408f53d
commit 84fa5736a4
1 changed files with 130 additions and 0 deletions

130
Release-Process.md Normal file

@ -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 **<<Month>> <<Year>> 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.