Enhance build configuration for macOS and update artifact naming #22

Merged
Sudo-Ivan merged 6 commits from universal-mac-build into master 2025-12-06 04:43:57 +00:00
Sudo-Ivan commented 2025-12-01 18:39:07 +00:00 (Migrated from github.com)
  • Added new distribution scripts for macOS ARM64 and universal builds in package.json.
  • Updated macOS target configuration to support universal architecture.
  • Modified GitHub Actions workflow to use macOS 14 and adjusted artifact naming for macOS DMG files.

Summary by CodeRabbit

  • Chores
    • Upgraded macOS CI runner to macOS 14 and added universal macOS (Intel + Apple Silicon) plus an arm64 build variant.
    • Added explicit macOS distribution scripts and artifact naming that includes architecture; introduced a universal mac build.
    • Enabled dynamic per-platform build selection so Windows, macOS, and Linux use appropriate distribution scripts.
    • Stabilized CI artifact upload/download by pinning action references and using a matrix-driven build flow.

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

- Added new distribution scripts for macOS ARM64 and universal builds in package.json. - Updated macOS target configuration to support universal architecture. - Modified GitHub Actions workflow to use macOS 14 and adjusted artifact naming for macOS DMG files. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Upgraded macOS CI runner to macOS 14 and added universal macOS (Intel + Apple Silicon) plus an arm64 build variant. * Added explicit macOS distribution scripts and artifact naming that includes architecture; introduced a universal mac build. * Enabled dynamic per-platform build selection so Windows, macOS, and Linux use appropriate distribution scripts. * Stabilized CI artifact upload/download by pinning action references and using a matrix-driven build flow. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
coderabbitai[bot] commented 2025-12-01 18:39:16 +00:00 (Migrated from github.com)

Walkthrough

CI workflow pins artifact actions to commit hashes, upgrades macOS runner to macos-14, and drives platform builds via a matrix dist_script (including dist:mac-arm64 and dist:mac-universal). package.json adds mac dist scripts, sets mac target to universal, and embeds arch in artifact names.

Changes

Cohort / File(s) Summary
Workflow configuration
.github/workflows/build.yml
Pinned frontend/artifact actions to specific commit hashes; upgraded macOS runner to macos-14; added matrix.dist_script entries for Windows/Linux/mac; renamed build step to "Build Electron App (Universal)"; build step runs npm run ${{ matrix.dist_script }}; artifact patterns updated to dist/*-mac-*.dmg; conditional steps adjusted to use matrix-driven scripts.
Build & package configuration
package.json
Added dist:mac-arm64 and dist:mac-universal npm scripts; changed mac target from "dmg" to { "target": "dmg", "arch": ["universal"] }; updated artifactName to ReticulumMeshChat-v${version}-mac-${arch}.${ext}; added x64ArchFiles entry.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions runner (matrix)
    participant Actions as GH Actions (artifact download/upload)
    participant NPM as npm (matrix dist_script)
    participant EB as electron-builder
    participant Art as Artifact storage

    GH->>Actions: checkout + setup (pinned actions)
    GH->>Actions: download frontend artifacts (pinned commit)
    Actions-->>GH: provide frontend artifacts
    GH->>NPM: run npm run ${{ matrix.dist_script }}
    NPM->>EB: invoke electron-builder with platform/arch (universal/x64/arm64)
    EB-->>NPM: produce build artifacts (dist/* or dist/*-mac-*.dmg)
    GH->>Actions: upload build artifacts (pinned commit)
    Actions-->>Art: store artifacts

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Check action commit hashes and artifact upload/download steps
  • Verify matrix -> dist_script mappings and conditional step logic
  • Validate electron-builder mac universal config and artifactName pattern
  • Confirm macOS 14 runner compatibility

Poem

🐰 I hopped through YAML and package cheer,
ARM and Intel now build so near,
macOS fourteen opens the door,
Artifacts stamped with arch — ready to soar,
A tiny hop, a universal roar! 🎉

Pre-merge checks and finishing touches

Passed checks (3 passed)
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title 'Enhance build configuration for macOS and update artifact naming' accurately summarizes the main changes: macOS build configuration enhancements and artifact naming updates in both package.json and GitHub Actions workflow.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch universal-mac-build

📜 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 365531be9b and f2ab1ad067.

📒 Files selected for processing (1)
  • package.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • package.json
Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build Desktop (mac)

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.

<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- walkthrough_start --> ## Walkthrough CI workflow pins artifact actions to commit hashes, upgrades macOS runner to macos-14, and drives platform builds via a matrix `dist_script` (including `dist:mac-arm64` and `dist:mac-universal`). package.json adds mac dist scripts, sets mac target to universal, and embeds arch in artifact names. ## Changes | Cohort / File(s) | Summary | |---|---| | **Workflow configuration**<br>`.github/workflows/build.yml` | Pinned frontend/artifact actions to specific commit hashes; upgraded macOS runner to `macos-14`; added `matrix.dist_script` entries for Windows/Linux/mac; renamed build step to "Build Electron App (Universal)"; build step runs `npm run ${{ matrix.dist_script }}`; artifact patterns updated to `dist/*-mac-*.dmg`; conditional steps adjusted to use matrix-driven scripts. | | **Build & package configuration**<br>`package.json` | Added `dist:mac-arm64` and `dist:mac-universal` npm scripts; changed mac `target` from `"dmg"` to `{ "target": "dmg", "arch": ["universal"] }`; updated `artifactName` to `ReticulumMeshChat-v${version}-mac-${arch}.${ext}`; added `x64ArchFiles` entry. | ## Sequence Diagram(s) ```mermaid sequenceDiagram participant GH as GitHub Actions runner (matrix) participant Actions as GH Actions (artifact download/upload) participant NPM as npm (matrix dist_script) participant EB as electron-builder participant Art as Artifact storage GH->>Actions: checkout + setup (pinned actions) GH->>Actions: download frontend artifacts (pinned commit) Actions-->>GH: provide frontend artifacts GH->>NPM: run npm run ${{ matrix.dist_script }} NPM->>EB: invoke electron-builder with platform/arch (universal/x64/arm64) EB-->>NPM: produce build artifacts (dist/* or dist/*-mac-*.dmg) GH->>Actions: upload build artifacts (pinned commit) Actions-->>Art: store artifacts ``` ## Estimated code review effort 🎯 2 (Simple) | ⏱️ ~10 minutes - Check action commit hashes and artifact upload/download steps - Verify matrix -> `dist_script` mappings and conditional step logic - Validate `electron-builder` mac universal config and artifactName pattern - Confirm macOS 14 runner compatibility ## Poem > 🐰 I hopped through YAML and package cheer, > ARM and Intel now build so near, > macOS fourteen opens the door, > Artifacts stamped with arch — ready to soar, > A tiny hop, a universal roar! 🎉 <!-- walkthrough_end --> <!-- pre_merge_checks_walkthrough_start --> ## Pre-merge checks and finishing touches <details> <summary>✅ Passed checks (3 passed)</summary> | Check name | Status | Explanation | | :----------------: | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. | | Title check | ✅ Passed | The title 'Enhance build configuration for macOS and update artifact naming' accurately summarizes the main changes: macOS build configuration enhancements and artifact naming updates in both package.json and GitHub Actions workflow. | | Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. | </details> <!-- pre_merge_checks_walkthrough_end --> <!-- finishing_touch_checkbox_start --> <details> <summary>✨ Finishing touches</summary> <details> <summary>🧪 Generate unit tests (beta)</summary> - [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Create PR with unit tests - [ ] <!-- {"checkboxId": "07f1e7d6-8a8e-4e23-9900-8731c2c87f58", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Post copyable unit tests in a comment - [ ] <!-- {"checkboxId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} --> Commit unit tests in branch `universal-mac-build` </details> </details> <!-- finishing_touch_checkbox_end --> --- <details> <summary>📜 Recent review details</summary> **Configuration used**: CodeRabbit UI **Review profile**: CHILL **Plan**: Pro <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 365531be9bcc54af74eb1a2625a9a510e45b7611 and f2ab1ad0670f68492e52f53ad1fde0509ce075c4. </details> <details> <summary>📒 Files selected for processing (1)</summary> * `package.json` (2 hunks) </details> <details> <summary>🚧 Files skipped from review as they are similar to previous changes (1)</summary> * package.json </details> <details> <summary>⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)</summary> * GitHub Check: Build Desktop (mac) </details> </details> <!-- tips_start --> --- Thanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=Sudo-Ivan/reticulum-meshchatX&utm_content=22)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. <details> <summary>❤️ Share</summary> - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code) </details> <sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub> <!-- tips_end --> <!-- internal state start --> <!-- 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 --> <!-- internal state end -->
deepsource-io[bot] commented 2025-12-01 18:39:17 +00:00 (Migrated from github.com)

Here's the code health analysis summary for commits d841999..f2ab1ad. View details on DeepSource ↗.

Analysis Summary

AnalyzerStatusSummaryLink
DeepSource Python LogoPython SuccessView Check ↗
DeepSource Docker LogoDocker SuccessView Check ↗

💡 If you’re a repository administrator, you can configure the quality gates from the settings.
<div><p>Here's the code health analysis summary for commits <code>d841999..f2ab1ad</code>. <a href="https://app.deepsource.com/gh/Sudo-Ivan/reticulum-meshchatX/run/e6cd7ae5-e542-4763-b795-a52446c429cf/">View details on DeepSource</a>&nbsp;↗.</p><h3>Analysis Summary</h3><table><thead><tr><th>Analyzer</th><th>Status</th><th>Summary</th><th>Link</th></tr></thead><tbody><tr><td><img src="https://static.deepsource.com/analyzer_logos/python.svg" alt="DeepSource Python Logo" width="16px" height="16px"/><strong>Python</strong></td><td><span>✅&nbsp;</span><span>Success</span></td><td></td><td><a href="https://app.deepsource.com/gh/Sudo-Ivan/reticulum-meshchatX/run/e6cd7ae5-e542-4763-b795-a52446c429cf/python/">View Check</a>&nbsp;↗</td></tr><tr><td><img src="https://static.deepsource.com/analyzer_logos/docker.svg" alt="DeepSource Docker Logo" width="16px" height="16px"/><strong>Docker</strong></td><td><span>✅&nbsp;</span><span>Success</span></td><td></td><td><a href="https://app.deepsource.com/gh/Sudo-Ivan/reticulum-meshchatX/run/e6cd7ae5-e542-4763-b795-a52446c429cf/docker/">View Check</a>&nbsp;↗</td></tr></tbody></table><hr/><blockquote><div>💡 If you’re a repository administrator, you can configure the quality gates from the <a href="https://app.deepsource.com/gh/Sudo-Ivan/reticulum-meshchatX/settings/reporting">settings</a>.</div></blockquote></div>
coderabbitai[bot] (Migrated from github.com) reviewed 2025-12-01 18:43:14 +00:00
coderabbitai[bot] (Migrated from github.com) left a comment

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d8419990b1 and a74a6869ea.

📒 Files selected for processing (2)
  • .github/workflows/build.yml (2 hunks)
  • package.json (2 hunks)
🔇 Additional comments (4)
.github/workflows/build.yml (2)

83-83: macOS runner upgrade from 13 to 14 is reasonable.

Upgrading to macOS 14 improves build consistency and security. Ensure your local development environment is also using a compatible macOS version to avoid environment mismatches.


176-180: No issues found - the workflow correctly uses dist-prebuilt for all platforms.

The frontend is intentionally pre-built in a separate build_frontend job and downloaded as an artifact before the Electron build step runs (line 149-156). The dist-prebuilt script is designed to skip frontend building since the frontend artifact is already available, making it appropriate for all platforms (windows, macos, linux). The step name "(Universal)" accurately reflects that it runs on all matrix platforms without platform-specific conditionals.

package.json (2)

15-15: dist-prebuilt intentionally skips frontend build and is correctly used in the workflow.

The dist-prebuilt script skips the frontend build step (npm run build-frontend), unlike the standard dist script. This is intentional: the GitHub Actions workflow explicitly builds the frontend in a separate build_frontend job (line 34–66), uploads it as an artifact, and then the build_desktop job (which depends on build_frontend completing) downloads that artifact before running npm run dist-prebuilt (line 180). The frontend artifact is guaranteed to be available before the Electron build step, and the same artifact is used for all platform builds (Windows, macOS, Linux), so no platform-specific frontend issues exist. The workflow design is sound.


41-46: macOS target configuration syntax is supported by electron-builder.

The nested target object with the arch array is a valid TargetConfiguration format supported by electron-builder. The "universal" architecture value for macOS is properly configured. No changes needed to this configuration.

**Actionable comments posted: 3** <details> <summary>📜 Review details</summary> **Configuration used**: CodeRabbit UI **Review profile**: CHILL **Plan**: Pro <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between d8419990b1a1423553974bf55b046f65210b9689 and a74a6869ea052fa169fdb8603f456e7fd0cdab98. </details> <details> <summary>📒 Files selected for processing (2)</summary> * `.github/workflows/build.yml` (2 hunks) * `package.json` (2 hunks) </details> <details> <summary>🔇 Additional comments (4)</summary><blockquote> <details> <summary>.github/workflows/build.yml (2)</summary><blockquote> `83-83`: **macOS runner upgrade from 13 to 14 is reasonable.** Upgrading to macOS 14 improves build consistency and security. Ensure your local development environment is also using a compatible macOS version to avoid environment mismatches. --- `176-180`: **No issues found - the workflow correctly uses dist-prebuilt for all platforms.** The frontend is intentionally pre-built in a separate `build_frontend` job and downloaded as an artifact before the Electron build step runs (line 149-156). The `dist-prebuilt` script is designed to skip frontend building since the frontend artifact is already available, making it appropriate for all platforms (windows, macos, linux). The step name "(Universal)" accurately reflects that it runs on all matrix platforms without platform-specific conditionals. </blockquote></details> <details> <summary>package.json (2)</summary><blockquote> `15-15`: **`dist-prebuilt` intentionally skips frontend build and is correctly used in the workflow.** The `dist-prebuilt` script skips the frontend build step (`npm run build-frontend`), unlike the standard `dist` script. This is intentional: the GitHub Actions workflow explicitly builds the frontend in a separate `build_frontend` job (line 34–66), uploads it as an artifact, and then the `build_desktop` job (which depends on `build_frontend` completing) downloads that artifact before running `npm run dist-prebuilt` (line 180). The frontend artifact is guaranteed to be available before the Electron build step, and the same artifact is used for all platform builds (Windows, macOS, Linux), so no platform-specific frontend issues exist. The workflow design is sound. --- `41-46`: **macOS target configuration syntax is supported by electron-builder.** The nested target object with the arch array is a valid TargetConfiguration format supported by electron-builder. The `"universal"` architecture value for macOS is properly configured. No changes needed to this configuration. </blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
@@ -94,3 +96,4 @@
dist_script: dist-prebuilt
permissions:
contents: write
steps:
coderabbitai[bot] (Migrated from github.com) commented 2025-12-01 18:43:12 +00:00

⚠️ Potential issue | 🟠 Major

Artifact upload pattern may not match generated filenames with architecture suffix.

The release_artifacts pattern at line 86 was updated to dist/*-mac-*.dmg (to account for architecture), but the artifact upload at line 192 still uses the old pattern dist/*-mac.dmg. The new artifactName in package.json includes ${arch}, so generated files will be named like ReticulumMeshChat-v2.41.0-mac-universal.dmg, which matches the wildcard pattern at line 86 but the upload step at line 192 may not capture them correctly.

Update the artifact upload pattern to include architecture:

         path: |
           dist/*-win-installer.exe
           dist/*-win-portable.exe
-          dist/*-mac.dmg
+          dist/*-mac-*.dmg
           dist/*-linux.AppImage
           dist/*-linux.deb
           python-dist/*.whl

Also applies to: 192-192

🤖 Prompt for AI Agents
.github/workflows/build.yml around lines 86 and 192: the release_artifacts
pattern was changed to include an architecture segment (`dist/*-mac-*.dmg` vs
`dist/*-mac.dmg`) but the artifact upload step still uses the old pattern and
will miss files named with `${arch}` (e.g.,
ReticulumMeshChat-v2.41.0-mac-universal.dmg); update the upload step's artifact
file pattern at line 192 to also include the architecture wildcard (e.g., change
`dist/*-mac.dmg` to `dist/*-mac-*.dmg`) and scan the file for any other
occurrences of the old pattern to make them consistent.

Addressed in commits c95d2fd to d69a3e8

_⚠️ Potential issue_ | _🟠 Major_ **Artifact upload pattern may not match generated filenames with architecture suffix.** The `release_artifacts` pattern at line 86 was updated to `dist/*-mac-*.dmg` (to account for architecture), but the artifact upload at line 192 still uses the old pattern `dist/*-mac.dmg`. The new `artifactName` in package.json includes `${arch}`, so generated files will be named like `ReticulumMeshChat-v2.41.0-mac-universal.dmg`, which matches the wildcard pattern at line 86 but the upload step at line 192 may not capture them correctly. Update the artifact upload pattern to include architecture: ```diff path: | dist/*-win-installer.exe dist/*-win-portable.exe - dist/*-mac.dmg + dist/*-mac-*.dmg dist/*-linux.AppImage dist/*-linux.deb python-dist/*.whl ``` Also applies to: 192-192 <details> <summary>🤖 Prompt for AI Agents</summary> ``` .github/workflows/build.yml around lines 86 and 192: the release_artifacts pattern was changed to include an architecture segment (`dist/*-mac-*.dmg` vs `dist/*-mac.dmg`) but the artifact upload step still uses the old pattern and will miss files named with `${arch}` (e.g., ReticulumMeshChat-v2.41.0-mac-universal.dmg); update the upload step's artifact file pattern at line 192 to also include the architecture wildcard (e.g., change `dist/*-mac.dmg` to `dist/*-mac-*.dmg`) and scan the file for any other occurrences of the old pattern to make them consistent. ``` </details> <!-- This is an auto-generated comment by CodeRabbit --> ✅ Addressed in commits c95d2fd to d69a3e8
@@ -16,1 +15,4 @@
"dist-prebuilt": "npm run electron-postinstall && npm run build-backend && electron-builder --publish=never",
"dist:mac-arm64": "npm run electron-postinstall && npm run build && electron-builder --mac --arm64 --publish=never",
"dist:mac-universal": "npm run electron-postinstall && npm run build && electron-builder --mac --universal --publish=never"
},
coderabbitai[bot] (Migrated from github.com) commented 2025-12-01 18:43:12 +00:00

⚠️ Potential issue | 🟠 Major

New dist:mac-arm64 and dist:mac-universal scripts are unused by the workflow.

Three distribution scripts now exist:

  • dist: full build for current platform (used by legacy code)
  • dist-prebuilt: skips frontend, used by workflow for ALL platforms
  • dist:mac-arm64 & dist:mac-universal: architecture-specific, but never invoked

The workflow always calls npm run dist-prebuilt regardless of platform, so the new macOS-specific scripts with explicit architecture targets are dead code. This defeats the purpose of offering architecture-specific builds.

Either:

  1. Update the workflow to invoke the appropriate script based on matrix platform, or
  2. Remove the unused scripts if they're not needed.

If option 1, update .github/workflows/build.yml line 180 to:

-        run: npm run dist-prebuilt
+        run: |
+          case "${{ matrix.name }}" in
+            mac) npm run dist:mac-universal ;;
+            *) npm run dist ;;
+          esac

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In package.json around lines 15 to 17 the new scripts "dist:mac-arm64" and
"dist:mac-universal" are never used by CI because the workflow always runs "npm
run dist-prebuilt"; either remove those two architecture-specific scripts if you
don't plan to use them, or update the GitHub Actions workflow to invoke the
correct script per platform—specifically modify .github/workflows/build.yml at
line 180 to run the appropriate dist script based on the job matrix (e.g., use a
conditional or matrix variable to call npm run dist:mac-arm64 for macOS/arm64
and npm run dist:mac-universal for macOS/universal) so the architecture-specific
builds are actually executed.

Addressed in commits c95d2fd to d69a3e8

_⚠️ Potential issue_ | _🟠 Major_ **New `dist:mac-arm64` and `dist:mac-universal` scripts are unused by the workflow.** Three distribution scripts now exist: - `dist`: full build for current platform (used by legacy code) - `dist-prebuilt`: skips frontend, used by workflow for ALL platforms - `dist:mac-arm64` & `dist:mac-universal`: architecture-specific, but never invoked The workflow always calls `npm run dist-prebuilt` regardless of platform, so the new macOS-specific scripts with explicit architecture targets are dead code. This defeats the purpose of offering architecture-specific builds. Either: 1. **Update the workflow** to invoke the appropriate script based on matrix platform, or 2. **Remove the unused scripts** if they're not needed. If option 1, update `.github/workflows/build.yml` line 180 to: ```diff - run: npm run dist-prebuilt + run: | + case "${{ matrix.name }}" in + mac) npm run dist:mac-universal ;; + *) npm run dist ;; + esac ``` > Committable suggestion skipped: line range outside the PR's diff. <details> <summary>🤖 Prompt for AI Agents</summary> ``` In package.json around lines 15 to 17 the new scripts "dist:mac-arm64" and "dist:mac-universal" are never used by CI because the workflow always runs "npm run dist-prebuilt"; either remove those two architecture-specific scripts if you don't plan to use them, or update the GitHub Actions workflow to invoke the correct script per platform—specifically modify .github/workflows/build.yml at line 180 to run the appropriate dist script based on the job matrix (e.g., use a conditional or matrix variable to call npm run dist:mac-arm64 for macOS/arm64 and npm run dist:mac-universal for macOS/universal) so the architecture-specific builds are actually executed. ``` </details> <!-- This is an auto-generated comment by CodeRabbit --> ✅ Addressed in commits c95d2fd to d69a3e8
@@ -36,9 +38,15 @@
"buildResources": "electron/build"
coderabbitai[bot] (Migrated from github.com) commented 2025-12-01 18:43:12 +00:00

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Search for hardcoded assumptions about artifact names in scripts
rg -nP 'ReticulumMeshChat.*\-mac' --type sh --type js --type json

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 55


🏁 Script executed:

# Also search for workflow files and patterns
fd -e yml -e yaml | head -20

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 91


🏁 Script executed:

# Check if there are references to the workflow pattern mentioned (line 86)
rg -nP 'dist/\*-mac-\*\.dmg' --type yml --type yaml

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 100


🏁 Script executed:

# Search for electron-builder configuration files
fd -e js -e json -e yml -e yaml | xargs rg -l 'electron-builder\|artifactName' | head -20

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 55


🏁 Script executed:

# Check repository structure
git ls-files | grep -E "(package\.json|workflow|\.github)" | head -20

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 145


🏁 Script executed:

# Read package.json to verify line 48
cat -n package.json | sed -n '40,60p'

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 789


🏁 Script executed:

# Find all workflow files
fd -e yaml -e yml 2>/dev/null | head -20

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 91


🏁 Script executed:

# Read the build.yml workflow file, focusing around line 86
cat -n .github/workflows/build.yml | sed -n '75,100p'

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 1127


🏁 Script executed:

# Also check for any dist pattern references in workflow
rg -n 'dist/.*\*' .github/workflows/build.yml

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 561


🏁 Script executed:

# Search for any artifact upload or download steps
rg -n -A 2 -B 2 'artifacts\|dist' .github/workflows/build.yml | head -40

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 55


🏁 Script executed:

# Check if there are any build artifacts or examples showing actual filenames
find . -name "*.dmg" -o -name "*darwin*" -o -name "*mac*" 2>/dev/null | grep -i artifact | head -20

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 55


🏁 Script executed:

# Search for electron-builder configuration and ${os} variable usage
rg -n '\$\{os\}' --type json --type js

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 520


🏁 Script executed:

# Check the entire mac configuration in package.json
cat -n package.json | sed -n '35,75p'

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 1312


🏁 Script executed:

# Look for any build scripts or documentation about artifact naming
rg -n 'artifact' package.json

Repository: Sudo-Ivan/reticulum-meshchatX

Length of output: 455


🌐 Web query:

electron-builder ${os} variable macOS darwin value

💡 Result:

In electron-builder the ${os} placeholder for macOS equals "darwin". [1][2]

Sources:
[1] electron-builder docs — Configuration / Common Configuration.
[2] electron-builder docs (variable substitution summary).


Critical artifact naming mismatch: ${os} resolves to "darwin" but workflow patterns expect "mac".

The artifactName change in package.json (line 48) uses ${os} which electron-builder resolves to "darwin" for macOS, producing filenames like ReticulumMeshChat-v{version}-darwin-universal.dmg. However, the workflow patterns at lines 86 and 192 expect dist/*-mac-*.dmg and dist/*-mac.dmg respectively, which will not match the generated artifacts. Either update the artifactName to use a hardcoded "mac" string instead of ${os}, or update the workflow patterns to expect "darwin-*" for the macOS artifacts.

🤖 Prompt for AI Agents
In package.json around line 48, the artifactName uses ${os} which resolves to
"darwin" for macOS, but CI workflow patterns expect "mac", causing mismatched
artifact names; fix by replacing ${os} with a hardcoded "mac" in artifactName
(e.g., ReticulumMeshChat-v${version}-mac-${arch}.${ext}) or alternatively update
the workflow glob patterns at the referenced workflow lines to match "darwin"
(e.g., change dist/*-mac-*.dmg to dist/*-darwin-*.dmg and dist/*-mac.dmg to
dist/*-darwin.dmg) so artifact names and workflow expectations align.

Addressed in commits c95d2fd to d69a3e8

_⚠️ Potential issue_ | _🔴 Critical_ <details> <summary>🧩 Analysis chain</summary> 🏁 Script executed: ```shell # Search for hardcoded assumptions about artifact names in scripts rg -nP 'ReticulumMeshChat.*\-mac' --type sh --type js --type json ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 55 --- 🏁 Script executed: ```shell # Also search for workflow files and patterns fd -e yml -e yaml | head -20 ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 91 --- 🏁 Script executed: ```shell # Check if there are references to the workflow pattern mentioned (line 86) rg -nP 'dist/\*-mac-\*\.dmg' --type yml --type yaml ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 100 --- 🏁 Script executed: ```shell # Search for electron-builder configuration files fd -e js -e json -e yml -e yaml | xargs rg -l 'electron-builder\|artifactName' | head -20 ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 55 --- 🏁 Script executed: ```shell # Check repository structure git ls-files | grep -E "(package\.json|workflow|\.github)" | head -20 ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 145 --- 🏁 Script executed: ```shell # Read package.json to verify line 48 cat -n package.json | sed -n '40,60p' ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 789 --- 🏁 Script executed: ```shell # Find all workflow files fd -e yaml -e yml 2>/dev/null | head -20 ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 91 --- 🏁 Script executed: ```shell # Read the build.yml workflow file, focusing around line 86 cat -n .github/workflows/build.yml | sed -n '75,100p' ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 1127 --- 🏁 Script executed: ```shell # Also check for any dist pattern references in workflow rg -n 'dist/.*\*' .github/workflows/build.yml ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 561 --- 🏁 Script executed: ```shell # Search for any artifact upload or download steps rg -n -A 2 -B 2 'artifacts\|dist' .github/workflows/build.yml | head -40 ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 55 --- 🏁 Script executed: ```shell # Check if there are any build artifacts or examples showing actual filenames find . -name "*.dmg" -o -name "*darwin*" -o -name "*mac*" 2>/dev/null | grep -i artifact | head -20 ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 55 --- 🏁 Script executed: ```shell # Search for electron-builder configuration and ${os} variable usage rg -n '\$\{os\}' --type json --type js ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 520 --- 🏁 Script executed: ```shell # Check the entire mac configuration in package.json cat -n package.json | sed -n '35,75p' ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 1312 --- 🏁 Script executed: ```shell # Look for any build scripts or documentation about artifact naming rg -n 'artifact' package.json ``` Repository: Sudo-Ivan/reticulum-meshchatX Length of output: 455 --- 🌐 Web query: `electron-builder ${os} variable macOS darwin value` 💡 Result: In electron-builder the ${os} placeholder for macOS equals "darwin". [1][2] Sources: [1] electron-builder docs — Configuration / Common Configuration. [2] electron-builder docs (variable substitution summary). --- </details> **Critical artifact naming mismatch: `${os}` resolves to "darwin" but workflow patterns expect "mac".** The `artifactName` change in package.json (line 48) uses `${os}` which electron-builder resolves to `"darwin"` for macOS, producing filenames like `ReticulumMeshChat-v{version}-darwin-universal.dmg`. However, the workflow patterns at lines 86 and 192 expect `dist/*-mac-*.dmg` and `dist/*-mac.dmg` respectively, which will not match the generated artifacts. Either update the artifactName to use a hardcoded "mac" string instead of `${os}`, or update the workflow patterns to expect "darwin-*" for the macOS artifacts. <details> <summary>🤖 Prompt for AI Agents</summary> ``` In package.json around line 48, the artifactName uses ${os} which resolves to "darwin" for macOS, but CI workflow patterns expect "mac", causing mismatched artifact names; fix by replacing ${os} with a hardcoded "mac" in artifactName (e.g., ReticulumMeshChat-v${version}-mac-${arch}.${ext}) or alternatively update the workflow glob patterns at the referenced workflow lines to match "darwin" (e.g., change dist/*-mac-*.dmg to dist/*-darwin-*.dmg and dist/*-mac.dmg to dist/*-darwin.dmg) so artifact names and workflow expectations align. ``` </details> <!-- This is an auto-generated comment by CodeRabbit --> ✅ Addressed in commits c95d2fd to d69a3e8
coderabbitai[bot] (Migrated from github.com) reviewed 2025-12-06 04:04:50 +00:00
coderabbitai[bot] (Migrated from github.com) left a comment

Actionable comments posted: 0

🧹 Nitpick comments (1)
package.json (1)

16-16: Unused dist:mac-arm64 script may be dead code.

The dist:mac-arm64 script (line 16) is not invoked by the workflow, which only calls dist:mac-universal for macOS builds. If this script is intended for manual builds or future multi-architecture CI, consider clarifying this in a comment. Otherwise, remove it to reduce maintenance burden.

Also applies to: 17-17

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a74a6869ea and d69a3e8522.

📒 Files selected for processing (2)
  • .github/workflows/build.yml (6 hunks)
  • package.json (2 hunks)
🔇 Additional comments (3)
.github/workflows/build.yml (1)

87-87: Workflow correctly executes platform-specific dist scripts and uses consistent artifact patterns.

The changes properly align the matrix-driven script execution (line 183: npm run ${{ matrix.dist_script }}) with the macOS-specific build configuration. The artifact patterns at lines 87 and 195 both expect dist/*-mac-*.dmg, which is consistent with the dist:mac-universal script.

Also applies to: 89-89, 183-183, 195-195

package.json (2)

41-48: Confirm macOS target configuration aligns with distribution script intent.

The macOS target specifies only universal architecture (line 43–45), which means only universal binaries will be built. This is consistent with the dist:mac-universal script used by the workflow, but consider whether the ARM64-specific script (line 16) should have a corresponding target configuration, or if it's intended for future use or manual invocation only.


48-48: Artifact naming fix resolves critical workflow pattern mismatch.

The change from ${os} (which resolves to "darwin") to hardcoded "mac" in the artifactName ensures generated filenames like ReticulumMeshChat-v2.41.0-mac-universal.dmg match the workflow's dist/*-mac-*.dmg pattern. This fixes the previous critical issue.

**Actionable comments posted: 0** <details> <summary>🧹 Nitpick comments (1)</summary><blockquote> <details> <summary>package.json (1)</summary><blockquote> `16-16`: **Unused `dist:mac-arm64` script may be dead code.** The `dist:mac-arm64` script (line 16) is not invoked by the workflow, which only calls `dist:mac-universal` for macOS builds. If this script is intended for manual builds or future multi-architecture CI, consider clarifying this in a comment. Otherwise, remove it to reduce maintenance burden. Also applies to: 17-17 </blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used**: CodeRabbit UI **Review profile**: CHILL **Plan**: Pro <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between a74a6869ea052fa169fdb8603f456e7fd0cdab98 and d69a3e85225909dc328b6a84025d45a37d79aa13. </details> <details> <summary>📒 Files selected for processing (2)</summary> * `.github/workflows/build.yml` (6 hunks) * `package.json` (2 hunks) </details> <details> <summary>🔇 Additional comments (3)</summary><blockquote> <details> <summary>.github/workflows/build.yml (1)</summary><blockquote> `87-87`: **Workflow correctly executes platform-specific dist scripts and uses consistent artifact patterns.** The changes properly align the matrix-driven script execution (line 183: `npm run ${{ matrix.dist_script }}`) with the macOS-specific build configuration. The artifact patterns at lines 87 and 195 both expect `dist/*-mac-*.dmg`, which is consistent with the `dist:mac-universal` script. Also applies to: 89-89, 183-183, 195-195 </blockquote></details> <details> <summary>package.json (2)</summary><blockquote> `41-48`: **Confirm macOS target configuration aligns with distribution script intent.** The macOS target specifies only `universal` architecture (line 43–45), which means only universal binaries will be built. This is consistent with the `dist:mac-universal` script used by the workflow, but consider whether the ARM64-specific script (line 16) should have a corresponding target configuration, or if it's intended for future use or manual invocation only. --- `48-48`: **Artifact naming fix resolves critical workflow pattern mismatch.** The change from `${os}` (which resolves to "darwin") to hardcoded `"mac"` in the artifactName ensures generated filenames like `ReticulumMeshChat-v2.41.0-mac-universal.dmg` match the workflow's `dist/*-mac-*.dmg` pattern. This fixes the previous critical issue. </blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RNS-Things/reticulum-meshchatX#22