1.9 KiB
1.9 KiB
Context
The existing Electron Forge packaging pipeline needs Linux arm64, macOS universal, and Windows MSI outputs, plus consistent artifact naming and SHA-256 checksum outputs for cross-platform release parity.
Goals / Non-Goals
- Goals:
- Cover Linux arm64 artifacts (
deb/rpm/AppImage) - Provide macOS
x64/arm64/universaldmg artifacts - Add MSI artifacts for Windows
- Include architecture markers in artifact names and output SHA-256 checksums
- Cover Linux arm64 artifacts (
- Non-Goals:
- Change existing update logic (
latest*.ymlremains unchanged) - Modify runtime application behavior
- Change existing update logic (
Decisions
- Decision: Build Linux arm64 on a dedicated arm64 runner, without cross-compilation.
- Decision: Build macOS universal via
--arch=universalor by merging app bundles before dmg packaging. - Decision: Generate Windows MSI with the official Forge maker (Wix/MSI) in parallel with Squirrel.
- Decision: Use
productName + version + archnaming; Linux usesamd64/aarch64, macOS/Windows usex64/arm64/universal.
Alternatives Considered
- x64-only artifacts: rejected because it does not meet user requirements.
- universal-only dmg: rejected due to weaker debugging/rollback capability and lack of architecture distinction.
Risks / Trade-offs
- Linux arm64 builds may be affected by native dependency compilation (for example,
better-sqlite3,keytar). - Windows MSI requires extra tooling (Wix), which may increase CI duration and failure rate.
- The universal dmg pipeline requires validation for signing and update-flow consistency.
Migration Plan
- Introduce CI multi-arch jobs with naming and checksum outputs.
- Add MSI maker and universal dmg packaging.
- Stabilize the workflow after release validation.
Open Questions
- Should artifact naming strictly match sample format (underscore vs hyphen)?
- Should checksum output be separate
.sha256files or a single consolidated manifest?