Skip to content

chore(release): add Linux packaging and stable install path#1827

Open
InSelfControll wants to merge 2 commits intopingdotgg:mainfrom
InSelfControll:main
Open

chore(release): add Linux packaging and stable install path#1827
InSelfControll wants to merge 2 commits intopingdotgg:mainfrom
InSelfControll:main

Conversation

@InSelfControll
Copy link
Copy Markdown

@InSelfControll InSelfControll commented Apr 7, 2026

"## Summary

  • Add first-class Linux packaging (AppImage, .deb, .rpm)
  • Stable install path: install to /opt/t3code while keeping visible app name
  • Add podman helper for containerized RPM builds
  • Enable updater metadata and CI changes for Linux packages

Test plan

  • Build artifacts locally: bun run dist:desktop:linux and verify release/*.deb and release/*.rpm are produced

  • Smoke test installation on Ubuntu: sudo apt install ./release/*.deb and verify app launches

  • CI will run release workflow and publish assets to GitHub Releases

  • Tested and works on Ubuntu 24.04

  • sudo dpkg -i ${pwd}t3code/release/T3-Code-0.0.15-amd64.deb""


Note

Medium Risk
Medium risk because it changes release/CI artifact generation and Linux install/update eligibility, where mistakes could break packaging or updater behavior for Linux users.

Overview
Linux desktop distribution is expanded beyond AppImage. The release workflow now builds and publishes Linux AppImage, .deb, and .rpm artifacts (including installing rpm tooling in CI) and updates docs/scripts to reflect multi-target builds.

New Debian packaging assets are introduced. Adds DEBIAN/control, md5sums, and install/uninstall scripts to install under /opt/t3code, manage a /usr/bin/t3code link via update-alternatives, set chrome-sandbox permissions based on user-namespace support, and conditionally install/remove an AppArmor profile.

Desktop and marketing tweaks align with the new Linux packages. Linux auto-updates are no longer restricted to AppImage-only builds, README/download page add .deb/.rpm install options, and the marketing download page switches to regex-based asset matching to pick the right release files.

Reviewed by Cursor Bugbot for commit 289d020. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Linux .deb and .rpm packaging with stable install path and auto-update support

  • Updates the Linux build pipeline to produce AppImage, .deb, and .rpm artifacts in addition to the existing AppImage, with individual build scripts and a Podman-based RPM build path.
  • Adds Debian package metadata (DEBIAN/control), post-install/post-remove scripts that register /usr/bin/t3code via update-alternatives, set chrome-sandbox permissions, and manage an AppArmor profile.
  • Removes the appImage parameter from getAutoUpdateDisabledReason in updateState.ts so all packaged Linux builds (not just AppImage) are eligible for auto-updates.
  • Updates the marketing download.astro page to use regex pattern matching and adds .deb and .rpm download cards.
  • Updates the CI release workflow to install rpm tooling and publish .deb and .rpm assets alongside AppImage.
  • Behavioral Change: packaged Linux users on .deb/.rpm installs will now receive auto-update checks that were previously blocked.

Macroscope summarized 289d020.

Add first-class Linux package outputs (.deb, .rpm, AppImage), enable updater for packaged Linux, set stable install root to /opt/t3code (keeps visible app name), add podman-based RPM helper, and update CI/docs for packaging.

Made-with: Cursor
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 7, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 36d1d66d-7f13-451b-b35b-b24d62dcc420

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Apr 7, 2026
Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 4 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9a7ff81. Configure here.

Co-authored-by: macroscopeapp[bot] <170038800+macroscopeapp[bot]@users.noreply.github.com>
@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp bot commented Apr 7, 2026

Approvability

Verdict: Needs human review

This PR adds Linux .deb and .rpm packaging alongside existing AppImage builds, modifies the CI/CD release pipeline, and changes auto-update behavior on Linux to allow updates for all packaged builds (not just AppImage). While primarily infrastructure changes, the introduction of new packaging formats, release pipeline modifications, and runtime behavior changes warrant human review.

You can customize Macroscope's approvability policy. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant