Skip to content

chore(BAR-30): Splits the macOS zips by architecture and compresses the packages harder - #38

Merged
Bare7a merged 3 commits into
masterfrom
chore/BAR-30_smaller-release-packages
Nov 3, 2026
Merged

Bare7a merged 3 commits into
masterfrom
chore/BAR-30_smaller-release-packages

Conversation

@Bare7a

@Bare7a Bare7a commented Nov 2, 2026

Copy link
Copy Markdown
Owner

📝 What changed?

Makes the release downloads about 70 MB (15%) smaller through packaging alone; the build profile doesn't change. Each macOS zip now holds a single architecture, because the updater only ever downloads the zip for its own chip, and the dmg, rpm, Arch package and Windows installer compress harder. The landing page leads with the universal dmg so an Intel Mac can't end up with the Apple Silicon zip, and an Intel build running under Rosetta now updates to the Apple Silicon one.

🧩 Type of change

  • 🐛 Bug fix
  • ✨ Feature
  • ♻️ Refactor
  • ⬆️ Dependencies
  • 📝 Docs or landing page
  • 🛠️ Build, CI or packaging

🧪 Tested

  • By hand on Windows
  • By hand on macOS
  • By hand on Linux
  • Tests workflow on macOS and Windows

Checked locally:

  • Windows: built the installer from the new installer.nsi (16.14 → 15.71 MB, and 7-Zip tests it clean), ran cargo clippy -p barsql-app --all-targets --features e2e -- -D warnings and the 23 updater tests, and viewed the landing page in a browser
  • WSL: ran bash -n and shellcheck on both packaging scripts, did a dry run of package-macos.sh with stubbed macOS tools (each zip holds one architecture in a single BarSQL.app, and the dmg holds both, made with -format ULMO), and ran the new COMPRESSZST the way makepkg runs it (32 MiB window, decompresses)

📖 Docs

  • Updated the guide
  • Updated the README or landing page
  • No docs needed

📌 Notes

Expected sizes are the v1.2.3 assets scaled by the compression ratios measured locally on the release binary. The first Release run gives the real ones.

Download v1.2.3 Expected
BarSQL-darwin-arm64.zip 44.6 MB ~22.3 MB
BarSQL-darwin-amd64.zip 44.6 MB ~22.3 MB
BarSQL-macos-universal.dmg 49.9 MB ~33.9 MB
BarSQL.pkg.tar.zst 28.1 MB ~20.9 MB
BarSQL.rpm 21.7 MB ~19.2 MB
BarSQL-amd64-installer.exe 16.2 MB ~15.8 MB
Whole release 457.4 MB ~386.8 MB
  • Release time: about 1–1.5 min longer (15–24 → ~16–25.5 min). The LZMA dmg adds 15–40 s to the macOS job and zstd -20 about 35 s to the Arch job, and both jobs set the run's total time.
  • Compatibility: asset names and the updater formats (deflate .zip, gzip .tar.gz) are unchanged, so released versions keep updating. Every rpm that read the zstd payload can read xz. Arch builds its own packages with zstd --ultra -20. ULMO dmgs open on macOS 10.15 and later, and BarSQL already needs macOS 12.
  • macOS trade-offs: the Apple Silicon zip no longer opens on an Intel Mac. The Intel zip runs under Rosetta on Apple Silicon until its first update. A dmg install keeps only its own architecture after its first update. Someone who deliberately opens BarSQL with Rosetta, say for an Intel-only SQLite extension, also moves to the Apple Silicon build.
  • Before merging: the Rosetta check in update.rs only compiles on macOS, and PR CI only builds Linux, so run Actions → Tests → Run workflow on this branch.

@Bare7a
Bare7a merged commit 896beba into master Nov 3, 2026
3 checks passed
@Bare7a
Bare7a deleted the chore/BAR-30_smaller-release-packages branch November 3, 2026 13:01
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.

1 participant