Skip to content

Release v1.1.3: Enable macOS notarization - #35

Merged
SidmoGoesBrrr merged 1 commit into
mainfrom
release/1.1.3
Dec 4, 2025
Merged

Release v1.1.3: Enable macOS notarization#35
SidmoGoesBrrr merged 1 commit into
mainfrom
release/1.1.3

Conversation

@SidmoGoesBrrr

@SidmoGoesBrrr SidmoGoesBrrr commented Dec 4, 2025

Copy link
Copy Markdown
Collaborator

🎯 Summary

Enables macOS notarization to fix Gatekeeper blocking issue where users see: "Apple could not verify 'YeetCode' is free of malware that may harm your Mac or compromise your privacy."

🔧 Changes

  • Bump version to 1.1.3 across package.json, index.js, and App.jsx
  • Upgrade Node.js 20 → 22 in GitHub Actions workflow (required by @electron/notarize@3.0.1)
  • Enable notarization by changing "notarize": false"notarize": true in package.json

📋 Context

The November 4, 2025 deployment failed with:

Error: HTTP status code: 403. A required agreement is missing or has expired.

Notarization was temporarily disabled (notarize: false) to unblock deployments. However, this causes users to see Gatekeeper warnings when trying to run the app.

This PR re-enables notarization with Node 22 (which satisfies @electron/notarize@3.0.1's requirement for Node >= 22.12.0).

⚠️ Prerequisites

CRITICAL: Verify Apple Developer account before merging:

  1. Go to https://developer.apple.com/account
  2. Check "Agreements, Tax, and Banking" section
  3. Ensure all agreements are signed and active

If agreements are expired/pending, this deployment will fail with the same error as November 4.

🧪 Testing Plan

After merge and deployment:

  1. Download: https://yeetcode-bucket.s3.us-east-1.amazonaws.com/YeetCode.dmg
  2. Install on macOS
  3. Open app → Should see "YeetCode" from developer "Nikhil Karkare" (no malware warning)

⏱️ Expected Deployment Time

  • Build: ~5-7 minutes
  • Notarization: ~5-15 minutes (Apple's servers process this)
  • Total: ~10-20 minutes

Summary by CodeRabbit

Release Notes

  • Chores
    • Version bump to 1.1.3
    • Enabled macOS app notarization for improved security and trust verification
    • Updated build infrastructure

✏️ Tip: You can customize this high-level summary in your review settings.

- Bump version to 1.1.3
- Upgrade to Node.js 22 (required by @electron/notarize@3.0.1)
- Enable notarization (notarize: true) to prevent Gatekeeper errors
- Fixes: 'Apple could not verify YeetCode is free of malware' error

This allows users to run the app without security warnings.

🎉 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Dec 4, 2025

Copy link
Copy Markdown

Walkthrough

Application version incremented from 1.1.2 to 1.1.3 across configuration and source files. Node.js runtime version updated from 20 to 22 in CI/CD workflows. macOS app notarization enabled in build configuration.

Changes

Cohort / File(s) Summary
CI/CD & Build Configuration
.github/workflows/deploy.yml, package.json
Updated Node.js version from 20 to 22 in macOS and Windows job steps; enabled macOS app notarization (build.mac.notarize toggled from false to true)
Source Code Version Constants
src/components/App.jsx, src/index.js
Version constant bumped from 1.1.2 to 1.1.3 in App component and main entry point
Package Configuration
package.json
Top-level version field updated from 1.1.2 to 1.1.3

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • All changes are simple, homogeneous version/configuration updates with no logic modifications
  • No control flow or behavioral changes introduced
  • Notarization flag toggle is a straightforward boolean configuration change

Poem

🐰 A minor hop to version three,
Node twenty-two now sets us free,
Notarization's seal so tight,
Our macOS apps now notarized right!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Release v1.1.3: Enable macOS notarization' directly reflects the main changes: version bump to 1.1.3 and re-enabling macOS notarization to resolve Gatekeeper warnings.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/1.1.3

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fbacaa5 and 5fd38c5.

📒 Files selected for processing (4)
  • .github/workflows/deploy.yml (2 hunks)
  • package.json (2 hunks)
  • src/components/App.jsx (1 hunks)
  • src/index.js (1 hunks)
🔇 Additional comments (5)
package.json (2)

4-4: LGTM - Version bump is consistent.

The version bump to 1.1.3 is consistent with the version constants updated in src/components/App.jsx (line 12) and src/index.js (line 31).


85-85: Critical: Verify Apple Developer agreements before deployment.

Enabling notarization is the primary goal of this release. However, as clearly stated in the PR objectives, this change will cause deployment to fail with a 403 error if the Apple Developer account agreements are not signed and active.

Before merging, the team MUST:

  1. Visit https://developer.apple.com/account
  2. Navigate to "Agreements, Tax, and Banking"
  3. Verify all entries are signed and active

Without this verification, the deployment will fail with the same 403 error encountered on November 4, 2025.

src/components/App.jsx (1)

12-12: LGTM - Version constant updated consistently.

The APP_VERSION constant is correctly updated to match the package.json version (1.1.3) and will be displayed in the UI.

src/index.js (1)

31-31: LGTM - Version constant updated consistently.

The version constant is correctly updated to 1.1.3, maintaining consistency with package.json and App.jsx.

.github/workflows/deploy.yml (1)

24-24: Node.js version satisfies @electron/notarize requirement.

The workflow configuration is correct. GitHub Actions resolves node-version: '22' to the latest 22.x release, currently v22.21.1, which exceeds the required Node >= 22.12.0 for @electron/notarize@3.0.1.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@SidmoGoesBrrr
SidmoGoesBrrr merged commit d1b7ca3 into main Dec 4, 2025
2 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.

2 participants