Skip to content

Publish dual-architecture macOS assets and select the matching update #857

Description

@Infiland

Child scope of #736. Depends on #856.

Problem

Release publication, recovery/audit policy, checksums, documentation, and the runtime update checker all assume one generic macOS ZIP/DMG pair. Once native arm64 and x86_64 builds exist, those assumptions can drop a variant or offer users the wrong executable.

Scope

  • Replace the generic macOS payload pair with exactly four architecture-specific files:
    • GM2Godot-macos-arm64.zip
    • GM2Godot-macos-arm64.dmg
    • GM2Godot-macos-x86_64.zip
    • GM2Godot-macos-x86_64.dmg
  • Update release artifact extraction, checksum generation, release publisher/recovery ownership, existing-release integrity checks, asset-digest auditing, and tests to require six payloads plus SHA256SUMS exactly once.
  • Reject stale generic macOS names and partial/duplicate architecture inventories.
  • Make the update checker map the normalized host machine to one exact ZIP suffix; unsupported/ambiguous machines must fall back safely to the release page rather than choosing the first macOS asset.
  • Update README, Wiki installation/maintenance/compatibility guidance, and release notes to state arm64 and x86_64 support with macOS 15.0+.
  • Close parent Publish verified Apple Silicon and Intel macOS builds #736 only after an exact-main release contains and validates both variants.

Acceptance criteria

  • Release publication requires exactly seven assets: six payloads and one checksum manifest.
  • SHA256SUMS contains exactly the six expected architecture-specific payload names and verified digests.
  • Existing-release/recovery logic rejects missing, extra, duplicate, generic, or cross-architecture macOS assets.
  • arm64 hosts select only the arm64 ZIP; x86_64 hosts select only the x86_64 ZIP; unknown hosts do not auto-download either.
  • README, Wiki, and release notes consistently state macOS 15.0+, Apple Silicon, Intel, and the lack of Developer ID trust until Developer ID sign and notarize macOS release artifacts #737 is complete.
  • Linux and Windows release names/content remain unchanged.
  • Pyright, Ruff, focused publisher/update/workflow/documentation tests, and the full unit suite pass.

Non-goals

Do not merge finished PyInstaller applications into a universal binary and do not add Developer ID signing, notarization, or stapling here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingciContinuous integration and required checks

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions