Skip to content

fix(build): drop stale Tauri bundles, and stop packaging from failing silently - #1512

Open
ErikBjare wants to merge 1 commit into
masterfrom
fix/tauri-stale-bundles-and-silent-package
Open

ErikBjare wants to merge 1 commit into
masterfrom
fix/tauri-stale-bundles-and-silent-package

Conversation

@ErikBjare

Copy link
Copy Markdown
Member

Linux Tauri jobs can finish green without producing any AppImage/deb/rpm.

Seen in: master's build of ee43e3b (Build Tauri artifacts (ubuntu-24.04), success) and #1509's run, where the new AppImage gate was the first step to notice (could not extract activitywatch-tauri*-linux-*.AppImage, i.e. the glob matched nothing).

Cause: the cargo cache restores aw-tauri/src-tauri/target/, including an earlier build's bundle/. With a previous version's .deb next to the new one, aw-tauri's package runs cp src-tauri/target/release/bundle/deb/*.deb target/package/aw-tauri/aw-tauri.deb with two sources and fails (cp: target '…/aw-tauri.deb': No such file or directory). Two silent steps then hide it:

  • the top-level package loop ignores a module's make package failure;
  • "Package Linux (Tauri bundles)" continues when there's no bundle of a type.

Fix:

  • Makefile build loop: remove aw-tauri/src-tauri/target/{release,debug}/bundle before building aw-tauri (next to the existing modules/ wipe). This only drops bundler output; the cached compile artifacts stay.
  • Makefile package loop: fail when a module's package or its copy fails. In fix(release): don't bundle libwayland into the Tauri AppImage, and gate it #1509's run, aw-tauri was the only module whose package step failed.
  • release.yml: the Linux Tauri packaging step requires exactly one .AppImage, .deb and .rpm.

Checked: make -n build|package (Tauri and Qt, with AW_EXTRAS) passes bash -n, and the YAML parses. This unblocks #1509's AppImage gate.

… silently

A cache-restored aw-tauri target/ can hold a previous version's .deb next
to the new one. aw-tauri's `package` then fails copying bundle/deb/*.deb
onto one file. The package loop ignored that failure, and the Linux
packaging step skipped missing bundles, so the job went green with no
AppImage/deb/rpm (e.g. master's build of ee43e3b).

- Remove aw-tauri/src-tauri/target/{release,debug}/bundle before building aw-tauri.
- Fail the package loop when a module's package step or copy fails.
- Require exactly one AppImage, deb and rpm in the Linux Tauri packaging step.
@ErikBjare

Copy link
Copy Markdown
Member Author

@greptileai review
@TimeToBuildBob review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T13:26:03.601988Z 86a43a0 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[High risk] Changes build and release pipeline for desktop app packaging.

The PR appears safe to merge; no actionable defects were found.

Summary

This PR removes cached Tauri bundles before building and stops packaging from hiding failures.

  • Makefile now stops when a module's package command or copy fails.
  • .github/workflows/release.yml requires exactly one AppImage, deb, and rpm for Linux Tauri builds.

No actionable issues were found.

Reviews (1) · Last reviewed commit: "fix(build): drop stale Tauri bundles, an..." · Reviewed by Greptile

@TimeToBuildBob

Copy link
Copy Markdown
Contributor

Reviewing the cache-cleanup and fail-fast packaging paths, including whether all Linux matrix variants produce the three required bundle types. I will post the verification results here; no code changes or merge yet.

@TimeToBuildBob TimeToBuildBob left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 86a43a0664cda60fb960c35057bd18cbebb726da: no blocking findings.

Executed eight isolated behavioral checks against the changed Makefile recipes and the actual Linux workflow shell:

  • Missing bundles and a duplicate deb fail; exactly one AppImage/deb/rpm passes.
  • A module's failing make package and a missing copy source stop the parent packaging loop; successful packaging passes.
  • Both cached release/debug bundle directories are removed before the Tauri build, while compile-cache files survive and staged modules remain executable.

The pinned aw-tauri config uses bundle.targets = "all", its Linux package recipe already requires all three formats, and the Linux matrix includes standard x86_64, ARM64 and research builds. The stricter workflow check matches that existing contract. The research rebuild retains the configured version, so it does not reintroduce the previous-version collision this fixes.

YAML parsing passed. Full desktop builds were not run locally; CI was still pending at review time. Recommend merging once required CI passes. No code changes needed.

@TimeToBuildBob

TimeToBuildBob commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

🤖 AI code review

This PR changes the Linux Tauri build and packaging pipeline so that missing or stale bundle artifacts fail the build instead of being silently skipped. In the Makefile, the build loop now removes aw-tauri's cached bundle directories before building, and the package loop now aborts with an error if a module's package step or the subsequent copy fails. In the release workflow, the Linux Tauri packaging step now requires exactly one .AppImage, .deb, and .rpm bundle, failing the job if any is missing or duplicated.

Safe to merge — no P0/P1 findings

Confidence 5/5

✅ No thread-worthy findings. Advisory notes follow; they are retained without opening review threads.

1 advisory finding (summary-only, not scored)

These P2 guard, heuristic, trade-off, or documentation claims are retained for judgment without opening review threads.

⚠️ P2 medium — .github/workflows/release.yml

This is a fix(...) PR but no test files are included in the diff. Erik's feedback: 'where is the repro & fixes they are supposed to catch' (gptme#3441), 'that measurement should come with a regression test' (gptme#3446). Add a test that would have caught this bug. (Advisory: Erik merged all such PRs but consistently requested tests.)

Add a test file that reproduces the bug before the fix and passes after it.

How this was verified: static preflight: fix-commit + touched-files scan (rule 7)

Files changed (2) — the diff as I read it
  • .github/workflows/release.yml — Changes the Linux Tauri bundle copy step to fail when the number of .AppImage/.deb/.rpm files is not exactly 1, removing the previous silent skip for zero files.
  • Makefile — Adds removal of aw-tauri's cached bundle directories before building, and makes the package loop fail on module package or copy errors.

Reviewed 86a43a0664cd · openrouter/deepseek/deepseek-v4-flash-0731 · llm engine · 42s · about this reviewer

Maintainer commands

@TimeToBuildBob review (own line) — fresh review · @TimeToBuildBob fix — a worker acts on the findings. Once per comment; 👀 = received.

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.

2 participants