• v1.3.1-beta 0406426c3b

    v1.3.1-beta
    All checks were successful
    build / check (push) Successful in 1m14s
    release / appimage (push) Successful in 3m21s
    release / rpm (push) Successful in 7m42s
    Pre-release

    Ghost released this 2026-06-20 21:12:49 +00:00 | 0 commits to master since this release

    Added in 1.3.1-beta

    • Fedora RPM packaging — the release workflow now also builds a self-contained .rpm and attaches it to the Forgejo release. All Python dependencies are vendored from the hash-verified lock; only the system python3 and a few Qt runtime libraries are required from Fedora. GPG signing is supported and activates when the signing secret is configured.

    Changed in 1.3.1-beta

    • Renamed the CI workflow file ci.ymlbuild.yml.
    Downloads
  • v1.3.0-beta d2acb80084

    v1.3.0-beta
    All checks were successful
    CI / check (push) Successful in 2m11s
    release / release (push) Successful in 4m28s
    Pre-release

    Ghost released this 2026-06-20 19:10:32 +00:00 | 4 commits to master since this release

    Added in 1.3.0-beta

    • Forgejo Actions CI/CD — automated build gate (lint, byte-compile, headless smoke import, version-consistency check) on every push to master and pull request, running in a pinned python:3.13 container; plus an AppImage release workflow on v* tags that builds a standalone Linux AppImage and publishes it to Forgejo Releases (with release notes drawn from this changelog).
    • Supply-chain hardening — all dependencies pinned and hash-locked (requirements.lock, requirements-dev.lock, requirements-build.lock); pip install --require-hashes everywhere; zero third-party Actions (native git checkout + native Forgejo release API); appimagetool pinned to an immutable version and SHA-256-verified before use. See SECURITY.md.
    • ruff linting — added a ruff.toml ruleset and cleaned the codebase to pass it.

    Fixed in 1.3.0-beta

    • Search & Replace — fixed a NameError in the replace-execute path (_execute_replace) that referenced the form's find/replace/subname/TTL values without reading them, which crashed the operation.
    Downloads