Chuyển tới nội dung chính

Versioning

Release versions​

V3 releases are 3.0.0-pre.N while the line is pre-release. One ProjectV release stamps all six owned packages and their mutual dependencies with the same version. The ten shared CrossSDK packages retain the versions pinned in the accepted dependency lock; a ProjectV version bump does not restamp them. The Client consumes that exact approved package set.

Deliveries are immutable: a published package path and its commit never change. A fix is a new release (pre.N+1) and a new delivery.

Contract revisions​

The backend contract has a major.minor revision (git tag contract/<major>.<minor> on projectz-nakama, for example contract/3.2). Admission admits a server of the same major whose minor is at least the client's. Therefore:

  • additive server changes (new optional fields, new operations, new enum values) need a minor bump and keep released clients working;
  • breaking changes need a new major and a matching Client release;
  • deploy the server before, or together with, a Client that needs a newer minor.

Pre-release API changes​

Pre-release builds may break the public API (for example the ID → Id rename). Each breaking change is called out in the package CHANGELOG.md and the Presenter reference is updated in the same change. No compatibility aliases are kept.

Before and after a delivery​

Before: package IDs and versions, candidate identity, Run1/Run2 equality, profile acceptance, and the approved scope. After: VERIFIED_COMPLETE from publish-sdk.yml, Client resolve from Git at the package revision, and the full local flow on the Client.