chore: add AppImage release packaging

This commit is contained in:
dev 2026-03-04 14:59:01 +00:00
parent 331e65d948
commit af7656145e
5 changed files with 87 additions and 17 deletions

View file

@ -8,6 +8,8 @@ ScanSlicer includes a full AppImage packaging workflow under `packaging/appimage
- `packaging/appimage/build-appimage.sh`: local build script
- `packaging/appimage/build-appimage-docker.sh`: containerized build wrapper
- `packaging/appimage/Dockerfile`: AppImage build environment
- `LICENSE`: project GPLv3 license bundled with AppImage releases
- `THIRD_PARTY_NOTICES`: bundled dependency notice file for AppImage releases
- desktop entry file in `packaging/appimage/`
- application icon file in `packaging/appimage/`
@ -42,6 +44,9 @@ Prerequisite:
- Docker
The Docker build image pins a specific `appimage-builder` version so release
builds use a stable packaging toolchain.
Command:
```bash
@ -68,6 +73,7 @@ Optional environment variables:
- Removes bundled Qt system libs to prefer PySide wheel Qt runtime
- Installs Python dependencies and project wheel into AppDir `/usr`
- Injects desktop entry and icon assets during `after_bundle`
- Copies `LICENSE` and `THIRD_PARTY_NOTICES` into `usr/share/doc/scanslicer/`
Runtime environment variables set in AppDir include:
@ -84,3 +90,20 @@ Expected output artifact location:
- `appimage/dist/ScanSlicer-<version>-x86_64.AppImage`
Intermediate build files are kept under `appimage/build/`.
## Release Checklist
Before publishing an AppImage:
1. Build from a committed state that has a matching source tag or commit you
will publish.
2. Verify `uv.lock` is committed so the bundled Python dependency set is
reproducible from source.
3. Confirm the AppImage contains `usr/share/doc/scanslicer/LICENSE` and
`usr/share/doc/scanslicer/THIRD_PARTY_NOTICES`.
4. Publish the AppImage together with the corresponding source code for that
exact release.
5. Review `THIRD_PARTY_NOTICES` whenever dependency versions change, especially
the PySide6 / Qt runtime stack.
6. If you change the pinned `appimage-builder` version, rerun a full AppImage
smoke test before publishing.