You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: document prerelease policy and Gatekeeper workaround
Explain the canary/beta/stable release flow, clarify that semantic-release owns version bumps, and add install notes for non-notarized builds until Apple signing secrets are configured.
Made-with: Cursor
Copy file name to clipboardExpand all lines: README.md
+32-3Lines changed: 32 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,10 +75,39 @@ just # List all recipes
75
75
76
76
## Releases
77
77
78
-
Releases are automated with [python-semantic-release](https://python-semantic-release.readthedocs.io/). Use Conventional Commits (`feat:`, `fix:`, etc.) on `main`; pushes trigger version bumps and GitHub Releases.
78
+
Releases are automated with [python-semantic-release](https://python-semantic-release.readthedocs.io/).
79
79
80
-
-**Stable**: Push `feat`/`fix` commits to `main` — CI builds DMG + standalone CLI and publishes.
81
-
-**Beta**: Run the Release workflow manually, check "Create beta prerelease" — publishes `vX.Y.Z-beta.N` with DMG and CLI.
80
+
-**Canary**: Push to `canary` to publish `vX.Y.Z-canary.N`
81
+
-**Beta**: Push to `beta` to publish `vX.Y.Z-beta.N`
82
+
-**Stable**: Run the `Release Stable` workflow manually from `main`
83
+
-**Version bumps**: Use Conventional Commits (`feat:`, `fix:`, etc.). semantic-release owns the version number.
84
+
85
+
### Signing and notarization
86
+
87
+
Release builds now do the following:
88
+
89
+
- ad-hoc sign the standalone `setmac-cli`
90
+
- ad-hoc sign `Setmac.app` and the DMG by default
91
+
- automatically switch to Developer ID signing when these GitHub secrets are configured:
92
+
-`APPLE_SIGNING_IDENTITY`
93
+
-`APPLE_CERTIFICATE_P12_BASE64`
94
+
-`APPLE_CERTIFICATE_PASSWORD`
95
+
-`APPLE_ID`
96
+
-`APPLE_APP_SPECIFIC_PASSWORD`
97
+
-`APPLE_TEAM_ID`
98
+
- automatically notarize and staple the DMG when the Apple secrets are present
99
+
100
+
Ad-hoc signing makes the bundle structurally valid, but it does **not** satisfy Gatekeeper on a downloaded build. Until the Apple signing secrets are configured, users should expect to use the workaround below.
101
+
102
+
### Gatekeeper workaround
103
+
104
+
If you open a non-notarized build and macOS reports the app as damaged or blocked, move it to `/Applications` and run:
105
+
106
+
```bash
107
+
xattr -cr /Applications/Setmac.app
108
+
```
109
+
110
+
You can also Control-click the app and choose `Open`. This is only a temporary workaround for older unsigned releases; the proper fix is signed and notarized builds.
0 commit comments