-
-
Notifications
You must be signed in to change notification settings - Fork 82
Release Process
These operations are performed on an Ubuntu 22.04 x86_64 PC. You'll need sudo access and plenty of hard disk space (20GB+ recommended) and memory (16GB recommended).
sudo apt install git protobuf-compiler libspdlog-dev libpcap-dev
# To see the current configuration
git config --global user.name
git config --global user.email
If you need to change the configuration, use the following;
git config --global user.name "Homer Simpson"
git config --global user.email homer.j@simpson.com
cd ~/piscsi
git checkout develop
git pull
git reset --hard HEAD
cd python/web
./translation_update.sh
Verify that the Web UI can still start up. Then commit the changes to po files under python/web/src/translations
.
git commit -m "Refresh Web UI localizations" ./src/translations
Put the "Translation stats" aside for later. We will need them for the release notes.
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
make all -j4 -C ./cpp
git commit -m "Update revision number for release" ./cpp/shared/piscsi_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.04.01"
git push origin v23.04.01
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
make all -j4 -C ./cpp
# 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
git checkout main
git pull
# Rebase main with the new tag
git rebase v23.04.01
# Check that there are no conflicts (there shouldn't be)
git status
git push origin main
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
Set the previous release, then generate the release notes
Add the boilerplate sections on "How to update", "SD Card Info", and "Translation Stats".
Set this as a pre-release, then publish
Have the development team review the release notes as appropriate.
Copy the first few sections of the previous release notes and update as appropriate. Re-generate the translation statistics, etc.
cd ~
git clone https://github.com/piscsi/piscsi-pi-gen
cd piscsi-pi-gen
Check out the branch that matches the RPiOS Release and architecture that you want to build an image for. At the time of writing, main
is 32bit Bullseye, and arm64
64bit Bullseye.
Note: To build with future RPiOS Releases, fetch the latest sources and branches from the mother pi-gen repo and adapt it for PiSCSI.
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.
Modify RELEASE with the RPiOS Release that matches the current branch.
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
IMG_NAME=PiSCSI-v23.11.01
GITHUB_REF=v23.11.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
See the pi-gen documentation for how to install of the dependencies to run this tool
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 artifacts will be in ~/piscsi-pi-gen/deploy/
Upload the .zip and .info files to the release. (Note that the Github page may look unresponsive while uploading a large file)
Have the development team review the release notes as appropriate.
- Home
- Initial Setup
- Documentation
- Companion Apps
- Developer Notes