Files
Brandon ThomasandClaude Opus 5.5 315751e3ec Release prep: 0.5.0 and Linux riscv64 release build (#423)
- release.yml: new `linux-riscv64` job (ported from GridCraft): cross-compiles on ubuntu-24.04
  against ports.ubuntu.com riscv64 libraries, packages a tar.gz, smoke-tests the CLI under
  QEMU. The draft-release job now needs it, so SHA256SUMS covers the tarball.
- packaging/linux/package.sh: CROSS_ARCH / CROSS_TARGET / CROSS_COMPILE / EMULATOR support.
- README Downloads and docs/releasing.md list the riscv64 tarball.
- Version 0.4.0 -> 0.5.0 (cargo xtask version set), Cargo.lock refreshed.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:15:06 -04:00

2.5 KiB

Releasing CADCraft

The canonical recipe is craftrules' release/playbook.md; this file covers only what's CADCraft-specific.

  • Version: [workspace.package] version in the root Cargo.toml is the single source. cargo xtask version prints it; cargo xtask version set X.Y.Z[-pre] changes it. The app shows it in About, cadcraft --version and cadcraft-cli --version; release builds also embed the commit (CADCRAFT_BUILD_SHA).
  • Cut a release: bump the version on main, then push main to release (git push origin main:release). Every push to release runs .github/workflows/release.yml and creates or updates the draft GitHub Release CADCraft v<version>. A workflow_dispatch run with version: X.Y.Z-rc.N makes a test build. A dispatch on any other branch is a dry run: the unsigned jobs (version, Linux, Linux riscv64, Flatpak, FreeBSD, web) build, the release environment refuses the signing jobs (macOS, Windows), and no release is drafted.
  • Artifacts: macOS universal .dmg (Developer ID signed, notarized, stapled) and CLI .zip; Windows x64, x86 and arm64 .msi + portable .zip (Azure Trusted Signing); Linux x86_64 and aarch64 .AppImage (+ .AppImage.zsync for AppImageUpdate delta updates), .flatpak bundle (repackages the tarball, packaging/linux/flatpak-bundle.sh), .deb, .rpm, .tar.gz (+ the from-source Flathub manifest in packaging/linux/flatpak/); Linux riscv64 .tar.gz (cross-compiled on Ubuntu 24.04 against ports.ubuntu.com riscv64 libraries, CLI smoke-tested under QEMU); FreeBSD x86_64 .tar.gz (built in a FreeBSD VM); web .zip (wasm + index.html, see packaging/web/README.md); SHA256SUMS.txt.
  • Secrets: the twelve signing secrets live in the release environment (deployable only from the release branch, which only org admins and release-managers can push). All are optional: a missing one produces unsigned artifacts with a warning.
  • Windows installer: packaging/windows/cadcraft.wxs (WiX v5 + WixToolset.UI.wixext). Its wizard has a Shortcuts page: the Start Menu shortcut is always created, the desktop shortcut is opt-in (DESKTOPSHORTCUT=1 for silent installs, DESKTOPSHORTCUT=0 drops it on an upgrade; otherwise upgrades keep the previous choice).
  • File types: .dxf and .dwg (macOS document types, Windows "Open with", Linux MIME types).
  • Local packaging test: packaging/macos/package.sh (ad-hoc signed DMG), packaging/linux/package.sh, packaging/web/package.sh.