feat(release): code-sign + notarize binaries (macOS notarization, Windows Authenticode) [follow-up] #408
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#409 feat(install): add a winget channel [follow-up, needs signed installer]
sixfold-space/madtea
Reference
sixfold-space/madtea#408
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sign and notarize the release binaries, so the raw download and
madtea installpath is friction-free on macOS and Windows (no Gatekeeper or SmartScreen wall). This is a public-launch investment. It does NOT block the epic.Scope
Apple notarization and Windows Authenticode, both integrated into the release pipeline. Per ADR 0010 (deferred) and ADR 0012 (signing/TOFU covers the update path; this issue is first-install trust).
Acceptance Criteria
Parked, and blocked on signing identities I have to buy, not on code.
Apple notarization needs an Apple Developer account plus a Developer ID certificate. Windows Authenticode needs a code-signing certificate, ideally EV for SmartScreen reputation. Both are purchases or enrollments, so nothing here is a code problem. The integration is also publish-coupled: ADR 0010 defers it, and ADR 0012 already covers update-path trust with GPG plus TOFU. This issue is first-install trust only.
The work is ready to execute once the certificates exist. goreleaser has first-class hooks for both paths: the macOS
notarizeconfig (orcodesignplusxcrun notarytool), and Windows through osslsigncode or Azure Trusted Signing. No action until I procure the identities and the launch sequence schedules the work.This is not pre-launch. The public launch ships unsigned binaries. Certificate procurement and signing happen after launch. The pre-launch gate set is whatever carries the
release-preplabel.