From c7a827149cd3ec09f2b13b22a25acea0c40df21f Mon Sep 17 00:00:00 2001 From: solarpunked <45199352+solarpunked@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:28:00 +1100 Subject: [PATCH] The stable channel's updater files live on their own pre-release; the checksums list the installers Stable installs read the version file and the release manifest from proofpoll-stable, as beta installs read proofpoll-beta, so no release page carries them; the update files and their signatures are on proofpoll-updates (the release tool moves them when it publishes a manifest). SHA256SUMS.txt names the installers only. --- .github/workflows/build-release.yml | 3 ++- src-tauri/src/updater.rs | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 39b0266..36b977f 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -627,9 +627,10 @@ jobs: } } + const installer = (name) => /\.(dmg|deb|rpm|msi)$|-Setup\.exe$/.test(name); const lines = []; for (const a of assets) { - if (a.name === 'SHA256SUMS.txt') continue; + if (!installer(a.name)) continue; const res = await github.request( 'GET /repos/{owner}/{repo}/releases/assets/{asset_id}', { owner, repo, asset_id: a.id, headers: { accept: 'application/octet-stream' } } diff --git a/src-tauri/src/updater.rs b/src-tauri/src/updater.rs index 1d886e1..3525d4c 100644 --- a/src-tauri/src/updater.rs +++ b/src-tauri/src/updater.rs @@ -38,13 +38,14 @@ fn channels_for(version: &str) -> &'static [&'static str] { } } -/// Where a channel's two files live: stable, the latest release's assets; -/// beta, one fixed pre-release whose two files each beta replaces. +/// Where a channel's two files live: one fixed pre-release per channel, +/// whose two files each release of that channel replaces, so no release page +/// carries them (the page people download from shows the installers). fn channel_base(channel: &str) -> String { if channel == "beta" { format!("{RELEASES}/download/proofpoll-beta") } else { - format!("{RELEASES}/latest/download") + format!("{RELEASES}/download/proofpoll-stable") } } @@ -475,8 +476,8 @@ mod tests { #[test] fn each_channel_reads_its_own_two_files() { - assert_eq!(latest_json_url("stable"), "https://github.com/WeAreFlowsta/ProofPoll/releases/latest/download/latest.json"); - assert_eq!(manifest_url("stable"), "https://github.com/WeAreFlowsta/ProofPoll/releases/latest/download/release-manifest.json"); + assert_eq!(latest_json_url("stable"), "https://github.com/WeAreFlowsta/ProofPoll/releases/download/proofpoll-stable/latest.json"); + assert_eq!(manifest_url("stable"), "https://github.com/WeAreFlowsta/ProofPoll/releases/download/proofpoll-stable/release-manifest.json"); assert_eq!(manifest_url("beta"), "https://github.com/WeAreFlowsta/ProofPoll/releases/download/proofpoll-beta/release-manifest.json"); }