From 80dcf3b38d730c615fc2cde6c037334018f230c7 Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Wed, 12 Aug 2026 18:07:58 -0700 Subject: [PATCH 1/4] (ci)release: bump packaging action to v1.8.0 Fixes our android package name and app label, which the action was overriding. --- .github/workflows/release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3196898c5..3fd30dda9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -292,7 +292,7 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Package .deb (desktop) - uses: project-robius/makepad-packaging-action@v1.7.0 + uses: project-robius/makepad-packaging-action@v1.8.0 env: CARGO_PACKAGER_SIGNING_KEY: ${{ secrets.CARGO_PACKAGER_SIGNING_KEY }} CARGO_PACKAGER_SIGNING_PASSWORD: ${{ secrets.CARGO_PACKAGER_SIGNING_PASSWORD }} @@ -354,7 +354,7 @@ jobs: ## our oldest glibc, which gets them running on the widest range of systems. - name: Package AppImage (desktop) if: matrix.os == 'ubuntu-22.04' || matrix.os == 'ubuntu-22.04-arm' - uses: project-robius/makepad-packaging-action@v1.7.0 + uses: project-robius/makepad-packaging-action@v1.8.0 env: CARGO_PACKAGER_SIGNING_KEY: ${{ secrets.CARGO_PACKAGER_SIGNING_KEY }} CARGO_PACKAGER_SIGNING_PASSWORD: ${{ secrets.CARGO_PACKAGER_SIGNING_PASSWORD }} @@ -377,7 +377,7 @@ jobs: ## stable. Renaming it breaks the AUR package. - name: Package pacman payload (desktop) if: matrix.os == 'ubuntu-22.04' - uses: project-robius/makepad-packaging-action@v1.7.0 + uses: project-robius/makepad-packaging-action@v1.8.0 env: CARGO_PACKAGER_SIGNING_KEY: ${{ secrets.CARGO_PACKAGER_SIGNING_KEY }} CARGO_PACKAGER_SIGNING_PASSWORD: ${{ secrets.CARGO_PACKAGER_SIGNING_PASSWORD }} @@ -500,7 +500,7 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Package (windows) - uses: project-robius/makepad-packaging-action@v1.7.0 + uses: project-robius/makepad-packaging-action@v1.8.0 env: CARGO_PACKAGER_SIGNING_KEY: ${{ secrets.CARGO_PACKAGER_SIGNING_KEY }} CARGO_PACKAGER_SIGNING_PASSWORD: ${{ secrets.CARGO_PACKAGER_SIGNING_PASSWORD }} @@ -522,7 +522,7 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Package (android) - uses: project-robius/makepad-packaging-action@v1.7.0 + uses: project-robius/makepad-packaging-action@v1.8.0 env: AWS_LC_SYS_CMAKE_BUILDER: 1 MAKEPAD_ANDROID_FULL_NDK: true From 84389ddd6a23d0e9680a5da176dee8853f1cfcb9 Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Wed, 12 Aug 2026 18:08:03 -0700 Subject: [PATCH 2/4] (ci)release: drop the `-release` suffix from asset names The pacman payload keeps its own name; the AUR package fetches it by that. --- .github/workflows/release.yml | 6 +++++- packaging/build-ios-testflight.sh | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3fd30dda9..c8b411930 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -303,7 +303,7 @@ jobs: ## Include the distro in asset names: the 22.04 and 24.04 legs produce ## debs with different Depends, and identical names would overwrite ## each other in the release. - asset_name_template: __APP__-__VERSION__-${{ matrix.os }}-__ARCH__-__MODE__.__EXT__ + asset_name_template: __APP__-__VERSION__-${{ matrix.os }}-__ARCH__.__EXT__ ## Boot the packaged app in a clean container with only its declared ## Depends, to catch runtime deps that static analysis can't see ## (dlopen'd libs like libEGL, spawned tools like xdg-open). @@ -508,6 +508,8 @@ jobs: github_token: ${{ secrets.ROBRIX_RELEASE }} packager_formats: nsis releaseId: ${{ needs.create_release.outputs.release_id }} + ## Same as the action's default naming, minus the `-release` mode suffix. + asset_name_template: __APP__-__VERSION__-__PLATFORM__-__ARCH__.__EXT__ uploadUpdaterJson: false for_android: @@ -537,6 +539,8 @@ jobs: args: --target aarch64-linux-android app_name: Robrix releaseId: ${{ needs.create_release.outputs.release_id }} + ## Same as the action's default naming, minus the `-release` mode suffix. + asset_name_template: __APP__-__VERSION__-__PLATFORM__-__ARCH__.__EXT__ uploadUpdaterJson: false for_ios: diff --git a/packaging/build-ios-testflight.sh b/packaging/build-ios-testflight.sh index 6e9a66680..cf065b78b 100755 --- a/packaging/build-ios-testflight.sh +++ b/packaging/build-ios-testflight.sh @@ -120,7 +120,7 @@ codesign -d --entitlements - "$APP_BUNDLE" # ---- 7. Package .ipa ---- BUILD_DIR="$REPO_ROOT/target/apple/makepad-apple-app/aarch64-apple-ios/release" cd "$BUILD_DIR" -IPA_NAME="robrix-${FULL_VERSION}-ios-aarch64-release.ipa" +IPA_NAME="robrix-${FULL_VERSION}-ios-aarch64.ipa" rm -rf Payload "$IPA_NAME" ditto "${APP}.app" "Payload/${APP}.app" ditto -c -k --sequesterRsrc --keepParent Payload "$IPA_NAME" From 916f25fd69d90b98f2fb8dc630945c2289dde611 Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Wed, 12 Aug 2026 18:08:03 -0700 Subject: [PATCH 3/4] (ci)release: fill in the release body from our notes file Renders docs/RELEASE_NOTES_.md, so i don't paste it in by hand anymore. --- .github/workflows/release.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c8b411930..c7a167f85 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -237,12 +237,36 @@ jobs: fi echo "No existing release for '$TAG'; safe to create a fresh one." + ## Fills in the release description from docs/RELEASE_NOTES_.md, so the + ## download links can't drift from the assets we actually upload. @PKGVER@ is + ## the Arch package's version, which drops the pre-release hyphen. + - name: Render release notes + id: notes + shell: bash + run: | + set -euo pipefail + TAG="${{ steps.resolve.outputs.tag }}" + version="${TAG#v}" + pkgver="${version/-/}" + pkgver="${pkgver//-/.}" + notes="docs/RELEASE_NOTES_${TAG}.md" + body="${RUNNER_TEMP}/release-body.md" + if [[ -f "$notes" ]]; then + sed -e "s|@VERSION@|${version}|g" -e "s|@PKGVER@|${pkgver}|g" "$notes" > "$body" + echo "Rendered $notes ($(wc -l < "$body") lines)" + else + echo "::warning::No release notes found at $notes; publishing with an empty description." + : > "$body" + fi + echo "body_path=$body" >> "$GITHUB_OUTPUT" + - name: Create Release id: create_release uses: softprops/action-gh-release@v3 with: tag_name: ${{ steps.resolve.outputs.tag }} name: ${{ steps.resolve.outputs.name }} + body_path: ${{ steps.notes.outputs.body_path }} ## Always a draft, so we can confirm every artifact landed before ## anyone can download a half-built release. Publish it by hand. draft: true From ac36ed3936673d68a37da00d83762c1d6c9ea0de Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Wed, 12 Aug 2026 18:08:08 -0700 Subject: [PATCH 4/4] (ci)release: set PACKAGER on the arch package sudo drops the env, so it has to go through `env` on the same line. --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c7a167f85..3a2378df2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -454,7 +454,10 @@ jobs: pacman -Syu --noconfirm --needed namcap || echo "::warning::namcap unavailable, skipping lint" useradd --create-home builder chown -R builder /build - sudo -u builder makepkg --force --noconfirm --nodeps + ## sudo drops the environment, so PACKAGER has to be passed through here, + ## otherwise the package records "Unknown Packager". + sudo -u builder env PACKAGER="Project Robius " \ + makepkg --force --noconfirm --nodeps ## Reports missing or surplus dependencies. Advisory only, so a lint ## warning never blocks a release. command -v namcap >/dev/null && namcap ./*.pkg.tar.zst || true