Skip to content

Commit affbadc

Browse files
committed
Add TurtleTerm macOS packaging plan
1 parent bbafbdc commit affbadc

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

docs/sourceos/MACOS_PACKAGING.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# TurtleTerm macOS Packaging
2+
3+
## Purpose
4+
5+
TurtleTerm should present as TurtleTerm on macOS, not as a runtime clone.
6+
7+
This document defines the staged macOS application identity and the remaining production hardening work.
8+
9+
## Current staged app identity
10+
11+
The staged app bundle is generated by:
12+
13+
```bash
14+
packaging/scripts/stage-macos-app.sh <version> <output-dir>
15+
```
16+
17+
It creates:
18+
19+
```text
20+
TurtleTerm.app/
21+
Contents/
22+
Info.plist
23+
MacOS/turtleterm
24+
Resources/turtleterm-icon.svg
25+
libexec/turtle-term/
26+
etc/turtle-term/turtleterm.lua
27+
share/turtle-term/
28+
```
29+
30+
The bundle metadata uses:
31+
32+
```text
33+
CFBundleName=TurtleTerm
34+
CFBundleDisplayName=TurtleTerm
35+
CFBundleIdentifier=ai.sourceos.TurtleTerm
36+
CFBundleExecutable=turtleterm
37+
```
38+
39+
## Runtime boundary
40+
41+
The app launches TurtleTerm through `Contents/MacOS/turtleterm` and keeps private terminal runtime files under:
42+
43+
```text
44+
Contents/libexec/turtle-term/
45+
```
46+
47+
The public product executable remains:
48+
49+
```text
50+
turtleterm
51+
```
52+
53+
## Production hardening still required
54+
55+
The staged app is not yet a complete production macOS distribution. Remaining work:
56+
57+
1. Generate a proper `.icns` icon from TurtleTerm brand assets.
58+
2. Replace or patch runtime app/window metadata where deeper internals expose non-product names.
59+
3. Add codesigning.
60+
4. Add notarization.
61+
5. Add DMG or PKG packaging lane.
62+
6. Add Gatekeeper validation workflow.
63+
7. Add update/rollback story.
64+
65+
## Acceptance criteria
66+
67+
macOS packaging is product-ready when:
68+
69+
1. `TurtleTerm.app` opens as TurtleTerm.
70+
2. Activity Monitor, Dock, Finder, and app metadata show TurtleTerm.
71+
3. App icon is TurtleTerm-branded.
72+
4. App is signed and notarized.
73+
5. Release artifacts include checksums, manifest, SBOM, and attestations.
74+
6. Required third-party notices are included without taking over the product surface.

0 commit comments

Comments
 (0)