Skip to content

fix(release): macOS/Linux-Binaries als Archiv verpacken (Exec-Bit bleibt erhalten) - #2

Merged
speedone merged 1 commit into
speedone:mainfrom
thorstenhornung1:release-archive-verpackung
Sep 18, 2026
Merged

speedone merged 1 commit into
speedone:mainfrom
thorstenhornung1:release-archive-verpackung

Conversation

@thorstenhornung1

Copy link
Copy Markdown
Contributor

Closes #1 — hier wie dort angeboten die konkrete Umsetzung. 🙂

Was

  • scripts/package-binaries.mjs verpackt die macOS-Binaries jetzt als .zip (entpackt der Finder per Doppelklick) und das Linux-Binary als .tar.gz; die Windows-.exe bleibt roh. Fehlt zip (z. B. auf Windows-Entwicklerrechnern), warnt das Skript nur — das rohe Binary liegt weiterhin in dist-bin/. Der Release-Runner (Linux) hat beide Tools.
  • release.yml hängt nur noch Archive + .exe ans Release (explizite Muster statt dist-bin/*). Netter Nebeneffekt: Auch der Artefakt-Download aus Actions behält so die Ausführungsrechte — actions/upload-artifact verwirft Unix-Rechte sonst ebenfalls.
  • README: Download-Tabelle auf die Archivnamen umgestellt und die macOS-Anleitung auf den seit macOS 15 (Sequoia) gültigen Weg aktualisiert (Systemeinstellungen → Datenschutz & Sicherheit → „Dennoch öffnen“, für ältere Systeme weiter der Rechtsklick-Weg, plus xattr-Einzeiler); der chmod +x-Schritt für Linux entfällt.
  • CLAUDE.md: Satz zur Release-Verpackung ergänzt.

Angenehmer Nebeneffekt der Kompression: Der macOS-Download schrumpft von 71,5 MB auf 29 MB, der Linux-Download von 102 MB auf 40 MB.

Getestet

  • Lokal auf einem Apple-Silicon-Mac (Bun 1.3.10): node scripts/package-binaries.mjs macos-arm64 und … linux — Archive entstehen, beide zeigen innen -rwxr-xr-x; npm test grün.
  • End-to-end über die echte Pipeline: Devel-Tag auf meinem Fork gepusht, der Workflow lief grün durch und hängte genau die vier gewollten Assets an. Das macOS-Zip anschließend vom Release geladen und entpackt: Binary startet ohne chmod direkt, Server antwortet mit HTTP 200 (Frontend + /api/settings). Gegenprobe: Das tar.gz vom Release enthält das Linux-Binary ebenfalls mit -rwxr-xr-x.

Die CI baut npm run package nicht — falls gewünscht, ergänze ich gern einen kleinen Package-Smoke-Job in einem Folge-PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BURVtuC2bz2sUeuECVi6Wt

…ibt erhalten)

Rohe Release-Downloads verlieren das Ausführungs-Bit (HTTP kennt keine
Dateirechte) — macOS-Nutzer konnten die Binaries daher nicht wie in der
README beschrieben starten. Jetzt: Zip für macOS (Finder entpackt per
Doppelklick), tar.gz für Linux, die Windows-.exe bleibt roh. README-Anleitung
auf den seit macOS 15 gültigen Gatekeeper-Weg aktualisiert.

Fixes #1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BURVtuC2bz2sUeuECVi6Wt
@speedone
speedone merged commit 6f1fbb1 into speedone:main Sep 18, 2026
1 check passed
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.

macOS-Release lässt sich nicht wie in der README beschrieben starten (Exec-Bit + Gatekeeper) — Vorschlag: Binaries als Archiv ausliefern

2 participants