Skip to content

Conversation

@JasonWarrenUK
Copy link
Contributor

Overview

Modernises the Electron Forge build pipeline with enhanced DMG installer configuration and upgraded tooling. Provides a more professional macOS installation experience with custom installer layout and drag-to-Applications UX.

Tip

After pulling, run npm install to ensure you have the updated Electron Forge v7.10.2 dependencies. Node.js 22 is now required (check .nvmrc).

Changes

Build Configuration

DMG Maker Enhancements

  • Switch from basic ZIP to professional DMG installer for macOS
  • Configure branded installer name: "ILR File Creator"
  • Add custom window dimensions (660x400) for installer UI
  • Include drag-to-Applications layout for better user experience
  • Prepare infrastructure for custom background and icon assets (commented for future use)

Electron Forge Upgrade

  • Update from v7.6.0 to v7.10.2 across all packages
  • Includes improvements to DMG maker reliability and features
  • Better native module handling and build performance

Node.js Version Pinning

  • Pin Node.js to v22 via .nvmrc
  • Ensures consistent builds across development environments
  • Prevents version-related build issues
forge.config.js

Replaced basic ZIP maker with fully-configured DMG maker for macOS platform. Added installer customisation options including window sizing and file positioning for optimal user experience. Included commented hooks for future asset customisation (background image, volume icon).

package.json

Removed deprecated manual codesign script - code signing is now handled automatically by Electron Forge during the build process.

.nvmrc

Added Node.js version specification (v22) to ensure consistent development and build environments.

package-lock.json

Updated all @electron-forge/* packages from v7.6.0 to v7.10.2, including:

  • Core CLI and build tools
  • DMG, PKG, DEB, RPM, Squirrel, and ZIP makers
  • Auto-unpack natives and Fuses plugins
  • All template packages

Includes dependency tree updates for improved compatibility and security.


Summary

Like swapping out your hand-drawn "please drag me to Applications" sticky note for a professionally printed instruction manual with colour diagrams, proper margins, and a laminated finish - except the sticky note was actually just you shouting at users through their screen, and now you've learned to communicate like a civilised application.

JasonWarrenUK and others added 3 commits December 10, 2025 15:54
Configure electron-forge to generate DMG files for macOS distribution using ULFO format (universal flash-optimized) for better compression and compatibility.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add .nvmrc to specify Node.js 22 as the required version for this project, resolving native module compatibility issues with Node.js 24. Update all electron-forge packages from 7.6.0 to 7.10.2 for improved tooling support.

Also bump version to 1.1.4, add codesign script for local macOS builds, and update contributors list.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add improved DMG installer configuration including custom name, window
sizing, and drag-to-Applications layout. Remove deprecated manual
codesign script from package.json as it's no longer needed.

- Configure DMG with branded name "ILR File Creator"
- Set custom window dimensions (660x400) for installer
- Add file and Applications folder positioning for better UX
- Include commented asset paths for future background/icon customization
- Remove manual codesign script (handled by forge)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@JasonWarrenUK JasonWarrenUK merged commit 0881e1e into main Dec 10, 2025
0 of 2 checks passed
@JasonWarrenUK JasonWarrenUK deleted the feat/export-dmg-file branch December 10, 2025 16:08
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