plan: defer macOS + Windows packaging from v0.2.0 to v0.9.0

Each cross-platform target carries operational prerequisites that
v0.2.0 isn't ready to absorb (Apple Developer cert + notarisation
pipeline + macOS runner; Authenticode cert + SmartScreen reputation
warm-up + Windows runner). Folding both into the next minor would
either delay v0.2.0 indefinitely or ship a half-done port.

Better: keep Linux AppImage as the only packaged target until the
framework's public API surface settles, then concentrate the
cross-platform push into a single v0.9.0 release-candidate milestone
right before v1.0.0. The §11 *Distribution UX* foot-guns (Gatekeeper,
SmartScreen, AV pre-submissions, file-association docs) ride along
with that milestone.

v0.2.0 stays focused on the smaller deferred items (deferred makers,
ReactiveObject pagination, qmltestrunner, end-to-end UI test,
auto-backup, bridge:export, periodic auto-update, build-time cache
warmup, native-dialog boundary doc) — all things a Linux-only
contributor can deliver without operational blockers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 13:07:04 +02:00
parent ec8d25c585
commit 9b31b1f6e7

15
PLAN.md
View File

@@ -542,12 +542,7 @@ Open follow-ups from v0.1.0 shakedown:
### v0.2.0 — next minor ### v0.2.0 — next minor
Pulls in the originally-Phase-3/4/5-deferred items that don't need new operational dependencies, plus the smaller §12 risks. Pulls in the originally-Phase-3/5-deferred items that don't need new operational dependencies, plus the smaller §12 risks. Cross-platform packaging is parked at v0.9.0 — the operational lift (self-hosted runners + platform certs) is too big to fold into the next minor and Linux remains the primary target until the framework's surface stabilises.
**Packaging (was Phase 4b / 4c):**
- **macOS packaging.** `.app` bundle + `.dmg` + Sparkle 2 + notarization. Hard prerequisites: self-hosted macOS runner, Apple Developer cert ($99/yr).
- **Windows packaging.** NSIS installer + WinSparkle + Authenticode signing. Hard prerequisites: self-hosted Windows runner, code-signing cert.
**Makers + reactive types (Phase 3.x deferred):** **Makers + reactive types (Phase 3.x deferred):**
@@ -579,6 +574,14 @@ Bigger pieces still deferred (each warrants its own minor, not v0.2.0 noise):
- **Flathub / Snap packaging** (§12). Better discoverability than AppImage at the cost of additional packaging surfaces. - **Flathub / Snap packaging** (§12). Better discoverability than AppImage at the cost of additional packaging surfaces.
- **Composer `create-project` package** (Phase 5 out-of-scope). Publish `php-qml/skeleton` as a composer template so `composer create-project php-qml/skeleton my-app` works. Bash `bin/php-qml-init` stays for curl-bootstrap. - **Composer `create-project` package** (Phase 5 out-of-scope). Publish `php-qml/skeleton` as a composer template so `composer create-project php-qml/skeleton my-app` works. Bash `bin/php-qml-init` stays for curl-bootstrap.
### v0.9.0 — cross-platform packaging (release-candidate milestone)
Locks down the cross-platform story before promoting to v1.0.0. Held until v0.9.0 (rather than v0.2.0) because each item carries operational prerequisites (paid certs, self-hosted runners, platform-specific notarisation pipelines) that are easier to absorb in a single concentrated push than to drip-feed across minors. Linux AppImage stays the only packaged target until then.
- **macOS packaging** (was Phase 4b). `.app` bundle + `.dmg` + Sparkle 2 + notarization. Prerequisites: self-hosted macOS runner, Apple Developer cert ($99/yr), notarisation toolchain.
- **Windows packaging** (was Phase 4c). NSIS installer + WinSparkle + Authenticode signing. Prerequisites: self-hosted Windows runner, code-signing cert (EV preferred to dodge SmartScreen reputation warm-up).
- **Per-platform first-launch UX** (§11, *Distribution UX*). Gatekeeper / SmartScreen / AV-vendor pre-submissions, file-association docs, App Store path decisions.
### v1.0.0 — when ### v1.0.0 — when
When the public API (Symfony bundle services + attributes, Qt module C++ types + QML elements, maker output) is stable enough to commit to compatibility for. Items still in flux that should settle before this: When the public API (Symfony bundle services + attributes, Qt module C++ types + QML elements, maker output) is stable enough to commit to compatibility for. Items still in flux that should settle before this: