9b2abef4e1
Converges all five clients on one version after four had drifted onto the already-published 0.1.2/0.1.1 while their APIs kept changing underneath it: - Rust Cargo.toml [package] + [workspace.package] -> 0.2.0 (CLIENT_VERSION already derives from CARGO_PKG_VERSION, no separate edit). - Python pyproject.toml + version.py -> 0.2.0; new test asserts __version__ matches pyproject.toml (closes the CLI-26 residual drift mode). - Go mxgateway/version.go ClientVersion -> 0.2.0. - .NET ZB.MOM.WW.MxGateway.Client.csproj <Version> -> 0.2.0. - Java -> 0.2.1, not 0.2.0: the live Gitea Maven feed already had 0.2.0 published (2026-06-26), before the CLI-37/38/40/41 conformance fixes changed the client's observable behavior, so reusing 0.2.0 would label two different APIs identically. Recorded as an exception in docs/ClientPackaging.md's new Versioning section. Publish-pipeline guards: - scripts/tag-go-module.ps1 implements the CLI-21 guard: after semver validation it refuses to tag unless clients/go/mxgateway/version.go's ClientVersion already matches the requested tag version. - scripts/pack-clients.ps1 gains a Gitea package-registry collision guard wired into every per-language -Publish step; it aborts if the target name+version already exists rather than force-overwriting. Verified live against the real Gitea registry (credentials already present in this environment) — correctly refuses on every known-published artifact and passes on every unpublished target. Docs updated in the same commit: docs/ClientPackaging.md (new Versioning section), and the five client READMEs' stale 0.1.1/0.1.2 example versions. No .proto changes. No publish performed.
64 lines
2.2 KiB
TOML
64 lines
2.2 KiB
TOML
[package]
|
|
name = "zb-mom-ww-mxgateway-client"
|
|
version = "0.2.0"
|
|
edition = "2021"
|
|
authors = ["Joseph Doherty"]
|
|
description = "Async Rust client for the MxAccessGateway gRPC service, including a lazy-browse walker over the Galaxy Repository hierarchy."
|
|
license = "Proprietary"
|
|
repository = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
|
|
homepage = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
|
|
documentation = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
|
|
readme = "README.md"
|
|
keywords = ["mxaccess", "mxgateway", "grpc", "client", "archestra"]
|
|
categories = ["api-bindings", "asynchronous"]
|
|
publish = ["dohertj2-gitea"]
|
|
build = "build.rs"
|
|
# Ship the vendored `.proto` files so `build.rs` can regenerate the tonic/prost
|
|
# bindings from the packaged tarball — a consumer building the published crate
|
|
# has no access to the in-repo Contracts protos. See CLI-02. Cargo.toml, the
|
|
# README, and the license are included automatically.
|
|
include = ["src/**/*.rs", "protos/*.proto", "build.rs", "README.md"]
|
|
|
|
[workspace]
|
|
members = ["crates/mxgw-cli"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
edition = "2021"
|
|
version = "0.2.0"
|
|
authors = ["Joseph Doherty"]
|
|
license = "Proprietary"
|
|
repository = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
|
|
publish = ["dohertj2-gitea"]
|
|
|
|
[workspace.dependencies]
|
|
clap = { version = "4.5.53", features = ["derive"] }
|
|
futures-core = "0.3.31"
|
|
futures-util = "0.3.31"
|
|
prost = "0.13.5"
|
|
prost-types = "0.13.5"
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = "1.0.145"
|
|
thiserror = "2.0.17"
|
|
tokio = { version = "1.48.0", features = ["macros", "rt-multi-thread", "sync", "time"] }
|
|
tokio-stream = { version = "0.1.17", features = ["net"] }
|
|
tonic = { version = "0.13.1", features = ["transport", "tls-ring", "tls-native-roots"] }
|
|
tonic-build = "0.13.1"
|
|
|
|
[dependencies]
|
|
futures-core = { workspace = true }
|
|
futures-util = { workspace = true }
|
|
prost = { workspace = true }
|
|
prost-types = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tokio = { workspace = true }
|
|
tonic = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
serde_json = { workspace = true }
|
|
tokio = { workspace = true }
|
|
tokio-stream = { workspace = true }
|
|
|
|
[build-dependencies]
|
|
tonic-build = { workspace = true }
|