Skip to content

macOS DMG release + notarisation option#2748

Draft
dm807cam wants to merge 12 commits into
vkbo:mainfrom
dm807cam:feature/macos_action_workflow
Draft

macOS DMG release + notarisation option#2748
dm807cam wants to merge 12 commits into
vkbo:mainfrom
dm807cam:feature/macos_action_workflow

Conversation

@dm807cam

Copy link
Copy Markdown

Brings back macOS DMG releases via a GitHub Actions workflow that builds, signs, notarizes, and attaches a .dmg to the release tag. Built with PyInstaller, reusing the existing part_assets.yml so the bundle contains everything novelWriter expects at runtime.

dm807cam and others added 12 commits May 27, 2026 06:52
Switched packager: PyInstaller → py2app (more macOS-native, better notarization story, no Windows-AV-style baggage).
New workflow: .github/workflows/build-macos-dmg-py2app.yaml replaces the old build-macos-dmg-pyinstaller.yaml.
New py2app config: setup/macos/setup_py2app.py — excludes WebEngine/Qml/Quick/WebSockets to trim bundle size.
Reuses part_assets.yml: compiles .ts → .qm, builds sample.zip, the PDF manual, and optional icon themes once, then shares them with the macOS jobs (addresses all three of the maintainer's feedback points).
Builds both architectures: matrix over macos-14 (Apple Silicon / arm64) and macos-13 (Intel / x86_64).
Canonical Info.plist: runs pkgutils.py gen-plist and overwrites py2app's default so version, bundle identifier (io.novelwriter.novelWriter), and .nwx document type are correct.
Asset path fix-up: post-build cp -R places assets/ where config.py expects it in frozen mode (Contents/Resources/lib/python3.X/assets/).
libenchant bundled: copies libenchant-2.dylib, enchant-2/ plugins, and share/enchant/ into the .app so spell-check works on machines without Homebrew (dictionaries themselves still TBD).
Ad-hoc signed with entitlements: uses App.entitlements + Hardened Runtime, with a plain-ad-hoc fallback. Structured to swap in Developer ID + notarization once the Apple Developer account is set up.
DMG output: novelWriter-<version>-<arch>.dmg + .sha256, uploaded as a workflow artifact and published to a rolling latest-mac prerelease.
@vkbo

vkbo commented May 28, 2026

Copy link
Copy Markdown
Owner

Thanks!

I'll have a look when I get a chance, although I'm a bit swamped for the next few days.

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