1.7 KiB
Release App
See .github/workflows/release.yml
macOS Runner Architecture Mismatch Issue
If you build x64 version on an ARM64 runner, dugite will download ARM64 git binaries. When users run the x64 app on Intel Mac, it fails with error: spawn Unknown system error -86 (EBADEXEC).
Solution: Use architecture-specific runners:
- Use
macos-13for x64 builds (free) - Use
macos-latestfor arm64 builds (free)
See .github/workflows/release.yml matrix configuration.
Future: When macos-13 is Deprecated
When GitHub fully deprecates macos-13, you have two options:
Option A (Simple, Costs Money):
Replace macos-13 with macos-15-large in release.yml. Note that -large runners require GitHub Team or Enterprise plan and incur charges even for public repos.
Option B (Complex, Free): Use npm_config_arch environment variable to force dugite download correct architecture on ARM64 runner:
- name: Install dependencies
run: pnpm install
env:
npm_config_arch: ${{ matrix.arch }}
This tells dugite's postinstall script which architecture to download, regardless of host machine. See node_modules/dugite/script/config.js for details.
App Size Reduction
dugite bundles a full git distribution. The package contains unnecessary components for TidGi:
- 141 git command symlinks (all point to main git binary, only needed if directly invoking
git-addinstead ofgit add) - Git LFS (13MB, TiddlyWiki wikis don't use LFS)
- Git Credential Manager + .NET runtime (26MB on macOS, TidGi embeds credentials directly in URLs)
afterPack script automatically removes these, saving approximately 40-60MB per platform. See scripts/trimDugite.ts for implementation details.