Plan the signed IODD Tool prerelease #27

Open
opened 2026-10-16 09:15:54 +00:00 by phg · 0 comments
Owner

Destination

A decision-complete plan for taking the current IODD Tool development build through all accepted software qualification gates to a Developer ID signed, notarized, stapled prerelease DMG and a Forgejo-hosted Homebrew cask for that same DMG. The map ends when the remaining release decisions and execution handoff are clear; building and publishing belong to the implementation effort.

Notes

  • Follow-on planning for Qualify and package the native app, under the completed IODD Tool specification. This map governs the new release-planning questions; it does not reopen the accepted product, filesystem, recovery, platform or lifecycle contracts.
  • Confirmed by phg in the wayfinder conversation on 16 October 2026: a decision-complete release plan; reproducible, manually initiated local releases; use mise to automate the procedure; a signed prerelease for limited evaluation before an ordinary public stable release.
  • Prerelease status does not waive any gate in Set validation gates and the implementation handoff. Keep the exact stable toolchain, arm64/macOS 15 minimum, baseline/current-stable runtime evidence, software-only validation, Developer ID/notarization/stapling, final-download Gatekeeper and both distribution-path lifecycle checks.
  • Preserve the lifecycle direction recorded in Qualify and package the native app: signed IODDLifecycle over shared NativeAppLifecycle, private account-owned destination, worker-lifetime lease, signed peer checks and retained recovery authority. No daemon, brew wrapper, arbitrary CLI destination/lease override, home crawl or security bypass. Surface a discovered conflict explicitly rather than weakening these constraints.
  • The main checkout and historical validation reports are not automatically the current release candidate. Bind investigations and later evidence to named commits/artifacts, and account for ongoing implementation. Source21 retains Source/Test ownership; this planning map authorizes no production code edits or extra mutation matrix.
  • Consult wayfinder for map work, grilling and domain-modeling for HITL decisions, and research for research tickets. Use docs/agents/issue-tracker.md, docs/agents/triage-labels.md and docs/agents/domain.md; use the root glossary and relevant ADRs.
  • Claim each child by assigning phg before work. Research is AFK, delegated in isolated research worktrees, using primary sources and committed notes under docs/research/. Its ticket retains branch, commit, artifact and delegated-task pointers. HITL answers require phg's actual feedback; resolve at most one non-research child per session.
  • Keep decision detail in the child resolution comments and linked assets. This issue is their index. Forgejo governs live updates; do not rewrite retained historical maps or specifications.
  • Missing credentials block actual signing/publication; planning can identify required private credential references and the human handoff without enrolling accounts or placing secrets in issues/files. No signing, publishing or credential provisioning is performed by this map.
  • Current lifecycle blocker (16 October 2026): Agree the manual and Homebrew lifecycle handoff records the manual-path policy selected by phg; the standard-cask contract remains unresolved under unchanged preservation guarantees. The child stays open and blocks the dependent release-stage handoff.

Decisions so far

Children

Not yet specified

Additional tradeoffs exposed when actual Homebrew/macOS behavior is connected to the fixed lifecycle and qualification contracts. Their shape depends on the research and subsequent choices; graduate a specific question only when it can be stated, and stop to identify any conflict with an accepted contract.

Out of scope

  • Implementing or shipping the app, lifecycle helper, mise tasks, DMG or cask during this planning effort; that work remains with Qualify and package the native app.
  • Automated Forgejo CI publishing, an in-app updater, a permanent daemon or a custom brew wrapper.
  • Ordinary stable-release launch and broader promotion policy beyond this first signed prerelease handoff.
  • Physical-media/IODD trials, bootability or physical power-loss guarantees, and performance commitments.
  • Weakening established release gates because the first artifact is a prerelease; unrelated new product features or a second filesystem-mutation test matrix.
## Destination A decision-complete plan for taking the current IODD Tool development build through all accepted software qualification gates to a Developer ID signed, notarized, stapled prerelease DMG and a Forgejo-hosted Homebrew cask for that same DMG. The map ends when the remaining release decisions and execution handoff are clear; building and publishing belong to the implementation effort. ## Notes - Follow-on planning for [Qualify and package the native app](https://git.s1q.dev/phg/iodd-tool/issues/24), under the completed [IODD Tool specification](https://git.s1q.dev/phg/iodd-tool/issues/7). This map governs the new release-planning questions; it does not reopen the accepted product, filesystem, recovery, platform or lifecycle contracts. - Confirmed by phg in the wayfinder conversation on 16 October 2026: a decision-complete release plan; reproducible, manually initiated local releases; **use mise to automate the procedure**; a signed prerelease for limited evaluation before an ordinary public stable release. - Prerelease status does not waive any gate in [Set validation gates and the implementation handoff](https://git.s1q.dev/phg/iodd-tool/issues/6). Keep the exact stable toolchain, arm64/macOS 15 minimum, baseline/current-stable runtime evidence, software-only validation, Developer ID/notarization/stapling, final-download Gatekeeper and both distribution-path lifecycle checks. - Preserve the lifecycle direction recorded in [Qualify and package the native app](https://git.s1q.dev/phg/iodd-tool/issues/24): signed IODDLifecycle over shared NativeAppLifecycle, private account-owned destination, worker-lifetime lease, signed peer checks and retained recovery authority. No daemon, brew wrapper, arbitrary CLI destination/lease override, home crawl or security bypass. Surface a discovered conflict explicitly rather than weakening these constraints. - The main checkout and historical validation reports are not automatically the current release candidate. Bind investigations and later evidence to named commits/artifacts, and account for ongoing implementation. Source21 retains Source/Test ownership; this planning map authorizes no production code edits or extra mutation matrix. - Consult wayfinder for map work, grilling and domain-modeling for HITL decisions, and research for research tickets. Use docs/agents/issue-tracker.md, docs/agents/triage-labels.md and docs/agents/domain.md; use the root glossary and relevant ADRs. - Claim each child by assigning phg before work. Research is AFK, delegated in isolated research worktrees, using primary sources and committed notes under docs/research/. Its ticket retains branch, commit, artifact and delegated-task pointers. HITL answers require phg's actual feedback; resolve at most one non-research child per session. - Keep decision detail in the child resolution comments and linked assets. This issue is their index. Forgejo governs live updates; do not rewrite retained historical maps or specifications. - Missing credentials block actual signing/publication; planning can identify required private credential references and the human handoff without enrolling accounts or placing secrets in issues/files. No signing, publishing or credential provisioning is performed by this map. - Current lifecycle blocker (16 October 2026): [Agree the manual and Homebrew lifecycle handoff](https://git.s1q.dev/phg/iodd-tool/issues/31) records the manual-path policy selected by phg; the standard-cask contract remains unresolved under unchanged preservation guarantees. The child stays open and blocks the dependent release-stage handoff. ## Decisions so far - [Verify standard Homebrew lifecycle compatibility](https://git.s1q.dev/phg/iodd-tool/issues/28): Pinned Homebrew source exposes bookkeeping and cleanup/lease conflicts with the inspected lifecycle; no complete standard-cask route is yet established. The existing lifecycle handoff ticket owns the human choice. - [Establish mise-driven local prerelease mechanics](https://git.s1q.dev/phg/iodd-tool/issues/29): Local mise/Apple/Forgejo mechanics established; workflow and final-byte evidence choices remain with the HITL tickets. The committed report is retained locally pending SSH publication. - [Choose the prerelease identity and download coordinates](https://git.s1q.dev/phg/iodd-tool/issues/30): Selected public `0.1.0-beta.1` / build 2 and tap coordinates for one fixed DMG, preserving existing trust identities; the repository is now public. ## Children <!-- Tracker convention: named child links in frontier order. Status, claims and blockers live on the children. --> - [Verify standard Homebrew lifecycle compatibility](https://git.s1q.dev/phg/iodd-tool/issues/28) — research, AFK. - [Establish mise-driven local prerelease mechanics](https://git.s1q.dev/phg/iodd-tool/issues/29) — research, AFK. - [Choose the prerelease identity and download coordinates](https://git.s1q.dev/phg/iodd-tool/issues/30) — grilling, HITL. - [Agree the manual and Homebrew lifecycle handoff](https://git.s1q.dev/phg/iodd-tool/issues/31) — grilling, HITL. - [Define the mise release stages and signing handoff](https://git.s1q.dev/phg/iodd-tool/issues/32) — grilling, HITL. - [Set the qualification freeze and evidence handoff](https://git.s1q.dev/phg/iodd-tool/issues/33) — grilling, HITL. ## Not yet specified Additional tradeoffs exposed when actual Homebrew/macOS behavior is connected to the fixed lifecycle and qualification contracts. Their shape depends on the research and subsequent choices; graduate a specific question only when it can be stated, and stop to identify any conflict with an accepted contract. ## Out of scope - Implementing or shipping the app, lifecycle helper, mise tasks, DMG or cask during this planning effort; that work remains with [Qualify and package the native app](https://git.s1q.dev/phg/iodd-tool/issues/24). - Automated Forgejo CI publishing, an in-app updater, a permanent daemon or a custom brew wrapper. - Ordinary stable-release launch and broader promotion policy beyond this first signed prerelease handoff. - Physical-media/IODD trials, bootability or physical power-loss guarantees, and performance commitments. - Weakening established release gates because the first artifact is a prerelease; unrelated new product features or a second filesystem-mutation test matrix.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
phg/iodd-tool#27
No description provided.