Skip to content

feat(release): apt/dnf/pacman repos on gh-pages, Flathub + AUR packaging, zsync, draft-then-flip publish - #35

Merged
emir-hasanbegovic merged 3 commits into
mainfrom
feat/distribution-alignment
Aug 23, 2026
Merged

feat(release): apt/dnf/pacman repos on gh-pages, Flathub + AUR packaging, zsync, draft-then-flip publish#35
emir-hasanbegovic merged 3 commits into
mainfrom
feat/distribution-alignment

Conversation

@emir-hasanbegovic

@emir-hasanbegovic emir-hasanbegovic commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Builds every Linux distribution channel this repo was missing and reshapes the release pipeline around them.

Pipeline

  • Publish uploads a draft and flips it live once every asset is up. releases/latest backs both the update manifest and the AppImage zsync pattern, so a half-uploaded release must never be latest.
  • Prerelease tags (1.2.3-rc.1) mark the release as prerelease, skip latest.json, and skip the package repos.
  • apt-publish / rpm-publish / arch-publish regenerate GPG-signed APT, DNF and pacman trees on gh-pages (ported from satellite; the pacman repo stands in for an AUR listing because AUR registration is closed).
  • harden moves to the shared _release_harden.yml, canonical copy in satellite, synced like _security.yml. cosign 2.6.5, SHA cross-checked against sigstore's checksums and the android pin.
  • Tags are bare MAJOR.MINOR.PATCH (android's pipeline requires bare tags); every consumer still strips a legacy v. The first release must be tagged 0.1.0.

Packaging

  • packaging/repo/: repo build scripts, the Pages landing page, and the key README. Fingerprint 96FF AACB 78FE 75D1 8CEE E332 C398 1795 12D6 BDF3; the private half lives in the repo secrets and the password manager.
  • packaging/aur/: dish-bin PKGBUILD and scriptlets. arch-publish builds it each release; checksums stay placeholders until 0.1.0 exists (updpkgsums).
  • packaging/flatpak/flathub/ and docs/FLATHUB.md: pinned-source manifest and the submission procedure.
  • scripts/build-appimage.sh embeds gh-releases-zsync update information and ships the .zsync.
  • docs/screenshots/ and the metainfo: four screenshots, tag-pinned URLs.

App

  • UpdatePreferenceStore: the update check defaults off inside a Flatpak (FLATPAK_ID / /.flatpak-info); the store that installed Dish also updates it. The Settings toggle still overrides and persists.

Also

  • SECURITY.md drops security@tinkernorth.invalid for the real address the sibling repos use.
  • FUNDING.yml added; this was the one repo without a Sponsor button.

After merge: tag 0.1.0. Pages is already enabled and serving the landing page; the repos populate on the first tag. AUR (packaging/aur/README.md) and Flathub (docs/FLATHUB.md) follow when registration reopens and when the listing is submitted.

…, atomic publish

- release.yml: publish as draft then flip (atomic for latest.json and the
  zsync pattern), prerelease tag support (1.2.3-rc.1 skips the manifest and
  the repos), apt-publish + rpm-publish jobs regenerating GPG-signed package
  repos on gh-pages, harden replaced by the shared _release_harden.yml
  (cosign 2.6.5, SPDX+CycloneDX), checkout v7.0.0 / gh-release v3.0.2 pins,
  bare MAJOR.MINOR.PATCH tags (org convention; android requires bare)
- packaging/repo/: apt/dnf repo build scripts, Pages landing page, key
  README (ported from satellite), committed public key
- packaging/aur/: dish-bin PKGBUILD + .SRCINFO + install scriptlets
  (checksums filled at first publish; see its README)
- packaging/flatpak/flathub/ + docs/FLATHUB.md: pinned-source manifest and
  submission runbook; metainfo gains a screenshots template
- scripts/build-appimage.sh: embed gh-releases-zsync update metadata and
  ship the .zsync
- UpdatePreferenceStore: update checks default off inside Flatpak (the
  store owns delivery); Settings toggle still overrides
- docs/PACKAGING.md, README.md: distribution channels, aarch64 decision
AUR account registration is closed, so ship Arch the same way as Debian and
Fedora: a new arch-publish release job builds dish-bin from the in-tree
PKGBUILD against the published release assets, GPG-signs the package and
repo database, and publishes arch/x86_64/ on gh-pages. pacman -Syu then
owns updates — no AUR helper, no manual bumps. packaging/aur/ stays
AUR-ready for if registration reopens; landing page and docs updated.
Screenshots for the AppStream listing land in docs/screenshots/ (captured
from the app, dark theme, clean profile) and the metainfo references them
pinned to the release tag. Comments and docs added on this branch are
reworded to the house style: why over what, colon and semicolon over the
em-dash. SECURITY.md drops the .invalid placeholder for the real address
the sibling repos already use, and FUNDING.yml arrives so this repo shows
the same Sponsor button they do.
@emir-hasanbegovic emir-hasanbegovic changed the title Linux distribution build-out: APT/DNF repos, AUR, Flathub prep, zsync, atomic publish feat(release): apt/dnf/pacman repos on gh-pages, Flathub + AUR packaging, zsync, draft-then-flip publish Aug 23, 2026
@emir-hasanbegovic
emir-hasanbegovic merged commit 129c94c into main Aug 23, 2026
13 checks passed
@emir-hasanbegovic
emir-hasanbegovic deleted the feat/distribution-alignment branch August 23, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant