Releasing
Paperman uses a GitHub Actions workflow to automate releases. Pushing a
version tag triggers two parallel jobs: one builds a .deb package and
publishes a GitHub Release, the other signs and uploads source packages to
the Launchpad PPA.
Release Checklist
Update the version and changelog entry at the top of
debian/changelog.in. The first line sets the version used for tagging, packaging and uploading — everything else is derived from it.Commit and push the changelog update.
Build
.debpackages locally for all target distros:scripts/do-build
Create the tag, push it and upload the
.debfiles:make release
This:
extracts the version from
debian/changelog.in(e.g.1.3.3-1→ tagv1.3.3)checks that the tag does not already exist
checks that
.debfiles are present in../release/all/creates and pushes the tag, triggering the GitHub Actions workflow
waits for the workflow to create the GitHub Release
uploads all locally-built
.debpackages to the release
If you need to re-upload
.debfiles to an existing release (e.g. after rebuilding):make release-upload
What the Workflow Does
- build-deb — Build
.deband create GitHub Release Installs Qt5/C++ build dependencies and Debian packaging tools, generates
debian/changelog,controlandrulesfrom the.intemplates, builds a binary.debwithdpkg-buildpackage, then creates a GitHub Release with the.debattached.- ppa-upload — Sign and upload to Launchpad PPA
Imports the GPG signing key from repository secrets, configures
gpg-agentfor non-interactive signing and sets updput, then runsscripts/ppa-uploadwhich handles building, signing and uploading source packages for all target distributions.
Required Secrets
The PPA job needs two secrets configured in the GitHub repository settings (Settings > Secrets and variables > Actions):
GPG_PRIVATE_KEYThe ASCII-armoured GPG private key. Export it with:
gpg --armor --export-secret-keys <KEY_ID>
GPG_PASSPHRASEThe passphrase for the GPG key.
Without these secrets the PPA job fails, but the .deb / GitHub Release
job still succeeds independently.
Manual PPA Upload
To upload to the PPA without the CI workflow, see PPA (Personal Package Archive).