Skip to content

fix: don't release when only x-gameserver-version changed in spec#9

Merged
cahaseler merged 1 commit into
mainfrom
fix/sync-ignore-deploy-version
Jun 7, 2026
Merged

fix: don't release when only x-gameserver-version changed in spec#9
cahaseler merged 1 commit into
mainfrom
fix/sync-ignore-deploy-version

Conversation

@cahaseler
Copy link
Copy Markdown
Collaborator

Problem

The server stamps info.x-gameserver-version into the OpenAPI spec on every gameserver deploy, even when the API surface is identical. The sync workflow detected changes with a raw git diff on openapi.json, so every deploy cut a full client release — tag, 5 platform binaries, release notification, and an update nag for every player — with zero functional difference.

Six of the seven releases since v1.4.29 were version-string-only:

Release Actual spec change
v1.4.30 x-gameserver-version only
v1.4.31 real schema change ✅
v1.4.32–v1.4.36 x-gameserver-version only

Fix

The diff step now compares the tracked and fetched specs with x-gameserver-version stripped (and keys sort-normalized). Version-only deltas are discarded and the run exits as "unchanged".

Nothing in the client consumes x-gameserver-version — codegen only embeds info.version — so letting the tracked copy go stale is harmless; it catches up on the next real spec change.

Verification

Ran the comparison against real release history:

v1.4.35 -> v1.4.36: UNCHANGED (would skip release)
v1.4.33 -> v1.4.34: UNCHANGED (would skip release)
v1.4.29 -> v1.4.30: UNCHANGED (would skip release)
v1.4.30 -> v1.4.31: CHANGED (would release)
v1.4.26 -> v1.4.27: CHANGED (would release)

The server stamps info.x-gameserver-version into the OpenAPI spec on
every deploy, even when the API surface is identical. The sync workflow
detected changes with a raw file diff, so every gameserver deploy cut a
full client release — new tag, binaries, release notification, and an
update nag for every player — with zero functional difference. Six of
the seven releases since v1.4.29 were version-string-only.

Compare the specs with x-gameserver-version stripped (and keys
sort-normalized) so only real API changes trigger the release train.
Nothing in the client consumes x-gameserver-version; the tracked copy
catches up on the next real spec change.

Verified against history: v1.4.30/32/33/34/35/36 would have been
skipped; v1.4.27 and v1.4.31 (real schema changes) still release.
@cahaseler cahaseler merged commit 0624ff3 into main Jun 7, 2026
1 check passed
@cahaseler cahaseler deleted the fix/sync-ignore-deploy-version branch June 7, 2026 05:01
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