From cf917c1ed5f885690efa7a224d5685fd619c08fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl?= Date: Sun, 28 Jun 2026 09:09:27 +0200 Subject: [PATCH] chore(release): HealthChat 1.1.2 Remove the Linux desktop build from the release pipeline. It could never succeed in this fork: the upstream Linux reusable pulls a build-env Docker image keyed by the building commit's SHA from the upstream element-hq registry, where the fork's SHA does not exist, so every tagged build failed with `manifest unknown`. Desktop releases now ship macOS and Windows only. - Drop the linux job + its release artifacts from build-healthchat-desktop.yaml - Bump apps/desktop/package.json to 1.1.2 - Update releasing-healthchat skill + desktop README docs --- .claude/skills/releasing-healthchat/SKILL.md | 17 +++++++----- .../workflows/build-healthchat-desktop.yaml | 26 +++---------------- HEALTHCHAT_CHANGES.md | 10 +++++++ apps/desktop/element.io/healthchat/README | 6 +++-- apps/desktop/package.json | 2 +- 5 files changed, 29 insertions(+), 32 deletions(-) diff --git a/.claude/skills/releasing-healthchat/SKILL.md b/.claude/skills/releasing-healthchat/SKILL.md index 40177449c1..abca00dfdb 100644 --- a/.claude/skills/releasing-healthchat/SKILL.md +++ b/.claude/skills/releasing-healthchat/SKILL.md @@ -13,17 +13,19 @@ Releases are driven by git tags of the form `healthchat-v` pushed to `:`, and creates a GitHub Release whose body is the matching section of `HEALTHCHAT_CHANGES.md`. - `.github/workflows/build-healthchat-desktop.yaml` (desktop) — builds the Electron - app for Linux (amd64/arm64), macOS (universal, signed+notarised) and Windows - (x64/arm64, signed), and attaches the installers (.dmg/.zip/.exe/.msi/.deb/.tar.gz) - to the **same** GitHub Release. The two workflows create-if-missing then upload, so - they race safely. + app for macOS (universal, signed+notarised) and Windows (x64/arm64, signed), and + attaches the installers (.dmg/.zip/.exe/.msi) to the **same** GitHub Release. The two + workflows create-if-missing then upload, so they race safely. (Linux is intentionally + not built — the upstream Linux reusable pulls a build-env Docker image keyed by commit + SHA that only exists in the upstream element-hq registry, so it cannot succeed in this + fork.) Publish target: **ghcr.io Docker image + GitHub Release (web bundle + desktop installers).** No npm, no mobile fan-out. The desktop app version is taken from `apps/desktop/package.json` (the per-job `version` input cannot set it — Windows squirrel mangles it into a nightly string, -and on macOS/Linux it only feeds the update manifest). So `apps/desktop/package.json` +and on macOS it only feeds the update manifest). So `apps/desktop/package.json` **must be bumped to the release version in the release commit** to keep the About dialog and installer filenames matching the tag. This is no longer optional: the desktop workflow's "Assert desktop app version matches release" step fails the build @@ -162,7 +164,7 @@ warning. Prefer fixing the changelog over relying on the fallback. (`docker buildx imagetools inspect ghcr.io//healthchat-web:stable`). - [ ] The desktop workflow run ("Build HealthChat Desktop") is green and the GitHub Release has the desktop installers attached (.dmg, *-mac.zip, *.msi, - "* Setup*.exe", *.deb, *.tar.gz). + "* Setup*.exe"). - [ ] Smoke-check signing: macOS `spctl -a -vvv -t install ` is accepted; Windows installer shows a valid publisher (no SmartScreen block). @@ -219,6 +221,7 @@ conflict on rebase, re-apply the HealthChat changes rather than blindly taking either side: - `.github/workflows/build_desktop_prepare.yaml` -- `.github/workflows/build_desktop_linux.yaml` +- `.github/workflows/build_desktop_linux.yaml` (still in the tree, but no longer + invoked by `build-healthchat-desktop.yaml` — the fork doesn't build Linux) - `.github/workflows/build_desktop_macos.yaml` - `.github/workflows/build_desktop_windows.yaml` diff --git a/.github/workflows/build-healthchat-desktop.yaml b/.github/workflows/build-healthchat-desktop.yaml index 5c31047ca9..2455b75221 100644 --- a/.github/workflows/build-healthchat-desktop.yaml +++ b/.github/workflows/build-healthchat-desktop.yaml @@ -1,13 +1,13 @@ name: Build HealthChat Desktop -# Builds the HealthChat desktop (Electron) app for Linux, macOS and Windows: the fork's +# Builds the HealthChat desktop (Electron) app for macOS and Windows: the fork's # element-web webapp with the HealthChat plugin (healthchat-module.js + healthchat-elements.js) # injected, packaged via the element-desktop build pipeline and published to the GitHub Release. # # This is the desktop counterpart of build-healthchat.yaml (web). On a `healthchat-v*` tag it # runs alongside the web build; it first builds the element-plugin from healthchat-workspace, # builds the fork webapp with the plugin injected, then feeds it into build_desktop_prepare.yaml -# (via `webapp-artifact`) and the per-platform build_desktop_{linux,macos,windows}.yaml reusables. +# (via `webapp-artifact`) and the per-platform build_desktop_{macos,windows}.yaml reusables. # # Notes: # - The reusable build workflows are pointed at THIS fork (repository/ref inputs) so the Electron @@ -18,7 +18,7 @@ name: Build HealthChat Desktop # GitHub environments (secrets/vars) to be configured. Without them the builds still run but # produce unsigned/untrusted output. See apps/desktop/element.io/healthchat/README. # - The desktop app version comes from apps/desktop/package.json (electron-builder); the per-job -# `version` input only feeds the macOS/Linux update manifest and is mangled into a nightly +# `version` input only feeds the macOS update manifest and is mangled into a nightly # string by Windows squirrel, so it cannot set the app version. To keep the installers / About # dialog in sync with the tag, apps/desktop/package.json must be bumped to the release version # in the release commit. The "Assert desktop app version matches release" step below enforces @@ -176,22 +176,6 @@ jobs: nightly: false deploy: false - linux: - name: Linux ${{ matrix.arch }} - needs: prepare - permissions: - contents: read - strategy: - matrix: - arch: [amd64, arm64] - uses: ./.github/workflows/build_desktop_linux.yaml - with: - repository: ${{ github.repository }} - ref: ${{ github.sha }} - arch: ${{ matrix.arch }} - sqlcipher: static - test: false - macos: name: macOS needs: prepare @@ -234,7 +218,7 @@ jobs: release: name: Publish to GitHub Release - needs: [linux, macos, windows] + needs: [macos, windows] # Only publish on a real tag push; manual workflow_dispatch runs build but do not publish. if: startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest @@ -254,8 +238,6 @@ jobs: find dist-artifacts -type f \( -iname '*.dmg' -o -iname '*-mac.zip' \) -exec cp -v {} release-files/ \; # Windows: per-machine MSI + Squirrel "Setup" installer find dist-artifacts -type f \( -iname '*.msi' -o -iname '* Setup*.exe' \) -exec cp -v {} release-files/ \; - # Linux: portable tarball + Debian package - find dist-artifacts -type f \( -iname '*.tar.gz' -o -iname '*.deb' \) -exec cp -v {} release-files/ \; echo "--- release files ---" ls -la release-files test -n "$(ls -A release-files)" || { echo "::error::No installer files collected"; exit 1; } diff --git a/HEALTHCHAT_CHANGES.md b/HEALTHCHAT_CHANGES.md index 8e8cb45546..c6081f91ed 100644 --- a/HEALTHCHAT_CHANGES.md +++ b/HEALTHCHAT_CHANGES.md @@ -7,6 +7,16 @@ in ` section and uses it as the body of the GitHub Release. One section per released version, newest on top. Upstream element-hq `CHANGELOG.md` is kept separate and untouched. +## Changes in 1.1.2 (2026-06-28) + +🐛 Fixes + +- Removed the Linux desktop build from the release pipeline. It could never + succeed in this fork: the upstream Linux build step pulls a build-env Docker + image keyed by commit SHA that only exists in the upstream element-hq registry, + so every tagged build failed with `manifest unknown`. Desktop releases now ship + macOS (.dmg/.zip) and Windows (.msi/.exe) installers only. + ## Changes in 1.1.1 (2026-06-26) 🙌 Improvements diff --git a/apps/desktop/element.io/healthchat/README b/apps/desktop/element.io/healthchat/README index 160e28b76d..4a02c4bb1e 100644 --- a/apps/desktop/element.io/healthchat/README +++ b/apps/desktop/element.io/healthchat/README @@ -45,11 +45,13 @@ CI -- .github/workflows/build-healthchat-desktop.yaml builds the plugin + webapp artifact and feeds it into build_desktop_prepare.yaml (`config: element.io/healthchat`, -`webapp-artifact: healthchat-webapp`) and the per-platform build_desktop_{linux,macos,windows}.yaml +`webapp-artifact: healthchat-webapp`) and the per-platform build_desktop_{macos,windows}.yaml reusables. It runs on every `healthchat-v*` tag (alongside the web build) and via workflow_dispatch. The reusables are pointed at THIS fork (`repository`/`ref` inputs) so the Electron shell, icons and the healthchat:// deep-link handler are fork-branded. On a tag push the -`release` job attaches the .dmg / .zip / .exe / .msi / .deb / .tar.gz to the GitHub Release. +`release` job attaches the .dmg / .zip / .exe / .msi to the GitHub Release. +(Linux is not built: the upstream build_desktop_linux.yaml needs a build-env Docker image +keyed by commit SHA that only exists in the upstream element-hq registry, so it can't run here.) Branding assets --------------- diff --git a/apps/desktop/package.json b/apps/desktop/package.json index bebd43c757..b7d2217b71 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -3,7 +3,7 @@ "productName": "Element", "main": "lib/electron-main.js", "exports": "./lib/electron-main.js", - "version": "1.1.1", + "version": "1.1.2", "description": "Element: the future of secure communication", "author": { "name": "Element",