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
1.9 KiB
TOML
64 lines
1.9 KiB
TOML
[build-system]
|
|
# setuptools >=77 emits core-metadata 2.4 (PEP 639 License-Expression), which the
|
|
# Gitea PyPI feed does not yet accept; cap below that so the dist stays <=2.3.
|
|
requires = ["setuptools>=69,<77", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "zb-mom-ww-mxaccess-gateway-client"
|
|
version = "0.2.0"
|
|
description = "Async Python client for MXAccess Gateway."
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"click>=8.3,<9",
|
|
"grpcio>=1.80,<2",
|
|
"protobuf>=6.33,<7",
|
|
]
|
|
authors = [
|
|
{ name = "Joseph Doherty" },
|
|
]
|
|
keywords = ["mxaccess", "mxgateway", "grpc", "client", "archestra"]
|
|
classifiers = [
|
|
"License :: Other/Proprietary License",
|
|
"Development Status :: 3 - Alpha",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: System :: Distributed Computing",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Intended Audience :: Developers",
|
|
"Operating System :: OS Independent",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
|
|
Repository = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
|
|
Issues = "https://gitea.dohertylan.com/dohertj2/mxaccessgw/issues"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
# Runtime range for local dev, but REGENERATION is pinned to grpcio-tools==1.80.0
|
|
# (protobuf 6.31.1): a newer version stamps a GRPC_GENERATED_VERSION the pinned grpcio
|
|
# runtime rejects and breaks pytest. generate-proto.ps1 asserts the exact pin.
|
|
"grpcio-tools>=1.80,<2",
|
|
"pytest>=9,<10",
|
|
"pytest-asyncio>=1.3,<2",
|
|
"build>=1.2,<2",
|
|
"twine>=5,<6",
|
|
]
|
|
|
|
[project.scripts]
|
|
mxgw-py = "zb_mom_ww_mxgateway_cli.commands:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "-ra"
|
|
pythonpath = ["src"]
|
|
testpaths = ["tests"]
|
|
markers = [
|
|
"tls: loopback TLS tests, opt-in via MXGATEWAY_RUN_TLS_TESTS=1",
|
|
]
|