Skip to content

Add Git-derived versions and release workflows - #23

Merged
eagleoflqj merged 1 commit into
mainfrom
release-workflow
Nov 6, 2026
Merged

eagleoflqj merged 1 commit into
mainfrom
release-workflow

Conversation

@eagleoflqj

Copy link
Copy Markdown
Member

Derive CFBundleShortVersionString from the nearest stable X.Y.Z Git tag and CFBundleVersion from the commits since that tag. Stamp bundle metadata on every build so changing commits or tags does not require reconfiguring CMake. CI checks out full history and explicitly runs git fetch --tags --force before configuring, matching the fcitx5-macos workaround.

Package SimStore.app.tar.bz2 and release.json before tests and upload both as individual artifacts. Main builds update the Nightly build prerelease; stable tag builds create drafts. Publishing a stable release refreshes latest/version.json, preserving historical minimum macOS versions for the future in-app updater. Publication is serialized, refuses overwriting published stable assets, and prevents older nightlies from replacing newer builds. Release descriptions retain the Terminal installation command.

Document the release process in docs/release.md. The in-app update UI and installation helper belong in the next PR.

Validation:

  • Release and Debug builds passed; building again after committing refreshed both bundles to 0.1.0 (1) without reconfiguring.
  • All 17 Release CTest checks passed, including app launch/window behavior. The release workflow suite now includes 17 Python tests covering version derivation, real tar packaging, draft filtering, retained OS requirements, publication order, and failure cases.
  • Rechecked bundle metadata/version and the release workflow suite after committing; Debug preview checks passed.
  • Packaged the actual Release app and verified archive contents, embedded version/revision, size, and SHA-256 against release.json.
  • Swift formatting and localization generation passed without catalog changes. Actionlint passed with exclusions for runner labels and the documented concurrency.queue option that its current release does not recognize.
  • GitHub publication is covered with an isolated fake CLI; no live release or tag was changed locally.

@eagleoflqj
eagleoflqj merged commit b1fe309 into main Nov 6, 2026
2 checks passed
@eagleoflqj
eagleoflqj deleted the release-workflow branch November 6, 2026 21:19
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.

1 participant