Skip to content

fix(release): notarize macOS builds + bump to v2.10.1#73

Merged
SomethingNew71 merged 2 commits into
mainfrom
fix/macos-notarization
Jun 4, 2026
Merged

fix(release): notarize macOS builds + bump to v2.10.1#73
SomethingNew71 merged 2 commits into
mainfrom
fix/macos-notarization

Conversation

@SomethingNew71
Copy link
Copy Markdown
Collaborator

Why

Users on macOS 15+ get "UltraLog.app can't be opened because Apple cannot check it for malicious software" and the right-click → Open bypass no longer works on Sequoia, generating a steady stream of bug reports. Root cause: the release workflow only ad-hoc signed the bundle (codesign --sign -) and never notarized it.

What changed

macOS code signing + notarization (release.yml)

  • Import the Developer ID cert into a temporary keychain on the runner.
  • Sign the binary and .app with a real Developer ID Application identity under hardened runtime (--options runtime --timestamp), replacing ad-hoc signing.
  • Notarize via notarytool --wait and staple both the .app (before DMG build) and the .dmg, so installs open with zero warnings — even offline.
  • Updated install instructions in RELEASE_TEMPLATE.md and the beta release body (removed the now-defunct "right-click → Open" advice).

Requires these repo secrets (already configured): MACOS_CERT_P12, MACOS_CERT_PASSWORD, MACOS_SIGN_IDENTITY, MACOS_KEYCHAIN_PASSWORD, AC_API_KEY_ID, AC_API_ISSUER_ID, AC_API_KEY_P8.

Version bump to v2.10.1

  • Cargo.toml, Cargo.lock, README badge, landing page badge fallback.
  • Also corrected the schema.org softwareVersion / releaseNotes in docs/index.html, which were stale at 2.5.0.

Dependency updates (incorporates #69)

  • tar 0.4.44 → 0.4.45
  • grid 1.0.0 → 1.0.1
  • rustls-webpki 0.103.9 → 0.103.13 (security advisory fixes)

Testing

cargo check passes; cargo fmt --check clean (pre-commit hook). Notarization path should be validated by cutting a -beta tag (routes to the prerelease job) before the stable v2.10.1 tag — watch for find-identity listing the cert and notarytool returning status: Accepted.

Closes #69

Replace ad-hoc codesign with hardened-runtime Developer ID signing,
notarize and staple both the .app and the .dmg via notarytool, and
import the signing cert into a temp keychain on the runner. Fixes the
Gatekeeper rejection on macOS 15+ where right-click - Open no longer
bypasses. Update install instructions accordingly.
…ates

Bump version 2.10.0 -> 2.10.1 across Cargo.toml, README badge, landing
page badge fallback, and the schema.org softwareVersion/releaseNotes
(both still pointed at 2.5.0). Incorporates the dependency bumps from
PR #69: tar 0.4.44->0.4.45, grid 1.0.0->1.0.1, rustls-webpki
0.103.9->0.103.13 (includes rustls-webpki security advisory fixes).
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request bumps the version of UltraLog to 2.10.1 across Cargo.toml, Cargo.lock, README.md, and documentation files. It also updates several dependencies in Cargo.lock, including downgrading windows-sys and upgrading grid, rustls-webpki, and tar. Additionally, the macOS release instructions in the release template have been updated to reflect that the app is now signed and notarized, eliminating the need to bypass Gatekeeper. There are no review comments to address, and I have no additional feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@SomethingNew71 SomethingNew71 merged commit 4ed0501 into main Jun 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant