Release Notes¶
Notable changes to the guide and its tooling. Follows Keep a Changelog and Semantic Versioning.
v1.2.4¶
Meta
- Rename workflows (GH - now we can know the order)
Changed
- Change the repo URL for our tor mirror
- Fix recommended reading admonition
- Refactoring some things and removing others
- More meta changes to the pipeline
- Rewrite developer guide for current pipeline
Fixed
- Fix an inline reference
- Use the Anonymous Planet RSK for releases (we used the MSK for testing)
- Prevent history dump and filter noise commits
- Actually save per-page PDFs for qpdf, not PNGs
- Fail fast with helpful message if pdftoppm or qpdf missing
v1.2.3¶
CI/CD pipeline split into independent stages, dark PDF quality improved, release signing automated, and the changelog now updates itself on every build. Skipping v1.2.2 which was a placeholder and contained broken Python unsuitable for a tag/release.
Added
- Dark mode PDF (
scripts/convert.py): pixel-level converter replaces the broken--prefers-color-scheme=darkChromium flag. Produces a 200 DPI hacker-themed PDF (#1f1f31background,#e0e0e0text,#5e8bdelinks) with batched page processing to avoid OOM on large documents. - Three independent CI workflows replacing the old monolithic
build-sign-release.yml:01-build.yml: builds PDFs and uploads them as an artifact; no secrets required, can be re-run freely.02-sign.yml: downloads the PDF artifact, computes SHA-256 and BLAKE2b hashes, GPG-signs all outputs, and uploads asignaturesartifact. Can be re-run against any historical build.03-release.yml: downloads both artifacts, uploads to VirusTotal, and publishes a tagged GitHub Release with all 12 assets attached. Can be triggered manually against any previous sign run.
scripts/update_changelog.py: readsgit logsince the last version tag, categorises commits by conventional-commit prefix, and prepends a new entry to this file automatically after each successful build.04-changelog.ymlworkflow: commits the auto-generated changelog entry back tomainafter every build, withdry_runandmanual_versiondispatch inputs for safe local testing.scripts/tag_release.py: interactive guided helper for maintainers to create GPG-signed annotated tags. Checks clean tree and branch, auto-increments the version, pulls the message from the changelog, resolves the release signing key, creates and verifies the tag, then prints the push command.docs/code/develop.md: full developer reference covering prerequisites, local build instructions, the pipeline flow, all required GitHub Secrets, the release process, verification steps, and a troubleshooting section for every known CI failure mode.
Changed
build-sign-release.ymldeprecated (now removed) - push triggers removed, manual dispatch only. Will be deleted once in-flight runs complete.- The full pipeline (build → sign → release → changelog) now chains automatically via
workflow_runon every push tomain. - GPG signing uses
--pinentry-mode loopbackand--passphrase-fd 0to avoid interactive prompts on headless runners. - VirusTotal scans moved to the release stage so they run once per release, not once per build.
.gitignoreupdated to track.b2per-file hash files alongside existing.sha256and.sigentries.- Stale information removed from the guide; deprecated ODT section in Appendix A6 commented out.
- Footer copyright information corrected.
Fixed
_save_images_as_pdfinconvert.pywas passing raw PNG files toqpdf --pages, which only accepts PDF inputs. Fixed by quantizing each page to palette mode (256 colours, FASTOCTREE) and saving as a single-page PDF before merging.convert.pynow fails immediately with install instructions ifpdftoppmorqpdfare missing, instead of crashing with an unhelpfulFileNotFoundError.- Pillow
KeyError: 'JPEG'on CI resolved by installingmkdocs-material[imaging]and using palette-mode PDF encoding instead of RGB+JPEG. - Orphaned footnote citations
[^536]and[^537](Australian privacy law and the Identify and Disrupt Act) restored at the key disclosure law paragraph in the guide. - Broken internal links and mismatched cross-references throughout the guide corrected.
v1.2.1¶
First automated PDF build and the start of the CI pipeline.
Added
scripts/build_guide_pdf.py: builds the MkDocs site and renders the full guide to a single PDF via headless Chromium (Chrome or Edge). Supports--dark,--light, and--bothmodes.- GitHub Actions workflow that installs Chromium, runs the build script, and uploads
export/thgtoa.pdfas an artifact on every push tomainor manual dispatch. docs/stylesheets/extra.cssfor shared site styling.- This changelog.
Changed
README.mdupdated with instructions for local PDF export and a note about the GitHub Actions artifact..gitignoreupdated to exclude local build outputs (export/,site/,_site_test/).
Fixed
- Broken reference-style internal links throughout
docs/guide/index.mdreplaced with correct fragment links. - Broken footnote marker on the "free (unallocated) space" list item in the guide.