Repository navigation
Development Releasing
Cutting a release of the Platemaker GUI.
CMakeLists.txt in the GUI project root is the single source of truth. Everything else
derives from it: PLATEMAKER_GUI_VERSION that the About dialog reports, and MyAppVersion that
the installer script stamps into Platemaker-<version>-Setup.exe.
Bump it there and nowhere else.
The working habit is to bump the patch number immediately after a release, in the first commit that follows it, so the version in the repository is always ahead of the last published one rather than equal to it.
If a change is more than a fix — a contract change, or anything that alters what the application does rather than how well it does it — bump the minor (or major) at the point the change lands, rather than waiting for release time.
The reasoning behind a given bump is recorded in the library's docs/TODO.md under Releases,
which tracks both projects' numbers together.
The GUI pins a minimum libplatemaker version, and since 1.1.0 that minimum is enforced at
configure time rather than surfacing later as compile errors.
The consequence for releasing: the library must be published first. The GUI's pinned version
also builds the FetchContent download URL, so until that library release exists on GitHub
Releases, anyone configuring without a local LIBPLATEMAKER_DIR gets a 404.
Order is therefore: tag and upload the library, then the GUI.
→ Building
docs/CHANGELOG.md, organised as Added / Changed / Fixed, written from the user's point of
view rather than the commit's — what changed for someone using the application, and why it
matters.
Releasing is driven by a GitHub Actions workflow (.github/workflows/release.yml). Pushing a
bare version tag (1.4.0 — no v prefix; that is the tag pattern *.*.*) builds and publishes
the release end to end on a Windows runner:
- Builds the Windows installer (Qt 6.11.1 MinGW + Inno Setup), pulling
libplatemakerfrom its own GitHub Release. - Attaches a build-provenance attestation.
- Publishes a GitHub Release with
Platemaker-<version>-Setup.exeand itsSHA256SUMS.txt. - Scans the installer on VirusTotal.
Running the workflow manually (workflow_dispatch) does a validation build and uploads the installer as a run artifact, but publishes no Release — the publish/scan steps are tag-only.
Pushing tags and running the workflow are repo-owner actions, so this is not something a contributor performs. It is documented here as the release mechanism.
Order still holds: the library must be released first (see Versioning against the library),
or the GUI build's libplatemaker download 404s.
For a local build without the workflow:
cmake --build build/<kit-name> --target installerProduces Platemaker-<version>-Setup.exe in installer-output/. It requires Inno Setup, and the
script (Platemaker.iss) bundles the executable, platemaker.dll, the libvips runtime, Qt and
its plugins — the installed application has no external dependencies.
Installer behaviour, for reference: installs to Program Files, requires administrator rights,
shows the GPL-3.0 licence for acceptance, offers an optional desktop shortcut, and closes a
running Platemaker.exe before replacing it.
The installer is not code-signed, so Windows shows a SmartScreen warning on first run. This is a deliberate deferral rather than an oversight: certificates cost money, and the intention is that Platemaker pays for its own signature if it ever earns anything.
Documented for users in Installation.
There are no automated GUI tests, so this step is entirely manual.
- Bump the patch version in
CMakeLists.txt - Update the version block on the wiki's Home page and the footer
See also: Building · Contributing · Development
Platemaker GUI 1.4.3 · GPL-3.0 · Application repository · libplatemaker · Report an issue
Development pages synced to code commit 1331e01 (2026-10-04).
Overview
Manual
- Manual overview
- Installation
- Quick start
- Concepts
- Main window
- Workspaces
- Projects
- Canvas profiles
- Templates
- Output profiles
- Rendering
- File statuses
- Menu reference
- Troubleshooting
Comic production
Development
- Overview
- Environment
- Building
- Architecture
- Main window
- Workflows
- Releasing
- Contributing
- Windows hardening
Strip editor