fix: don't release when only x-gameserver-version changed in spec#9
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The server stamps
info.x-gameserver-versioninto the OpenAPI spec on every gameserver deploy, even when the API surface is identical. The sync workflow detected changes with a rawgit diffonopenapi.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:
x-gameserver-versiononlyx-gameserver-versiononlyFix
The diff step now compares the tracked and fetched specs with
x-gameserver-versionstripped (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 embedsinfo.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: