release-packaging

Documents cargo-dist release builds, AppImage packaging, and version bump steps for the launcher.

Updated Sep 8, 2026
One-click install
npx skills add https://github.com/Sixdd6/grid-craft-launcher --skill release-packaging-sixdd6
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: release-packaging
Source: https://github.com/Sixdd6/grid-craft-launcher/tree/main/.claude/skills/release-packaging
Command: npx skills add https://github.com/Sixdd6/grid-craft-launcher --skill release-packaging-sixdd6

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Releasing a Rust desktop app across Linux, Windows, and macOS involves cargo-dist configuration, AppImage assembly, version bumps, and changelog updates that are easy to get wrong or forget. This Skill captures the exact release workflow so CI changes and version edits follow the established process. ## Core Features & Use Cases - Versioning workflow: Bump the workspace version with just bump-version x.y.z, which edits Cargo.toml, syncs Cargo.lock, and rolls the CHANGELOG.md Unreleased heading. - cargo-dist configuration: Manage dist-workspace.toml targets, per-package dist metadata, and apt dependencies for the GitHub release workflow. - Linux AppImage builds: Assemble the AppDir, embed update info via zsync, and ship both UI and CLI binaries in one AppImage using packaging/build-appimage.sh. - Use Case: Before tagging v1.2.0, follow the pre-tag checklist: run checks and e2e tests, build and smoke-test the AppImage, bump the version, then tag and push so the release workflow builds Windows and macOS archives. ## Quick Start Read this skill before changing CI release jobs or Cargo version fields, then follow its checklist to bump the version and tag the release.

Frequently Asked Questions about release-packaging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I bump the version of a Rust workspace before a release?▼

Run just bump-version x.y.z, which validates the version format, edits the workspace version in Cargo.toml, updates Cargo.lock offline, and renames the CHANGELOG Unreleased heading. Then commit, tag vx.y.z, and push the tag.

How do I build a Linux AppImage for a Rust Slint application?▼

Run just appimage, which builds both release binaries, assembles the AppDir from the packaging directory, downloads appimagetool if missing, and writes the AppImage to dist/. Smoke test the result with just appimage-smoke.

Does cargo-dist build the Linux AppImage automatically?▼

No, cargo-dist only builds the Windows zip and macOS tarball archives in the release workflow. The AppImage must be built locally with just appimage and attached to the GitHub release by hand.

Why does cargo-dist skip binaries in a workspace with publish = false?▼

Setting publish = false hides binaries from dist, so each shippable package needs [package.metadata.dist] dist = true in its Cargo.toml. Library crates like gcl-core keep dist = false.

What checks should pass before tagging a release?▼

Run just check, just deny, just lint-claude, both e2e suites, a UI smoke run, and an AppImage build plus smoke test. Also confirm THIRD_PARTY.md lists all ported files before tagging.