[Protocol] Single-source-of-truth protocol version + publish @cockatrice/protocol

The protocol version is now declared once in libcockatrice_protocol/protocol_version.json.
CMake reads it at configure time and emits a generated protocol_version.h exposing
COCKATRICE_PROTOCOL_VERSION; remote_client.cpp and serversocketinterface.cpp both
pick it up via the existing libcockatrice_protocol link.

The same JSON file is bundled into a new @cockatrice/protocol npm package
(scripts/package-protocol.mjs + .github/workflows/protocol-publish.yml) so
TypeScript consumers (Sockatrice/webclient) can derive PROTOCOL_VERSION from the
identical source instead of hand-typing the literal. The workflow dry-runs
npm pack on PRs and publishes to GitHub Packages on stable releases only.
This commit is contained in:
ZeldaZach 2026-05-23 12:59:58 -04:00
parent 98c00c55ed
commit cc4a53b850
No known key found for this signature in database
7 changed files with 214 additions and 2 deletions

View file

@ -21,9 +21,10 @@
#include <libcockatrice/protocol/pb/server_message.pb.h>
#include <libcockatrice/protocol/pb/session_commands.pb.h>
#include <libcockatrice/protocol/pending_command.h>
#include <libcockatrice/protocol/protocol_version.h>
#include <libcockatrice/utility/passwordhasher.h>
static const unsigned int protocolVersion = 14;
static const unsigned int protocolVersion = COCKATRICE_PROTOCOL_VERSION;
RemoteClient::RemoteClient(QObject *parent, INetworkSettingsProvider *_networkSettingsProvider)
: AbstractClient(parent), networkSettingsProvider(_networkSettingsProvider), timeRunning(0), lastDataReceived(0),