diff --git a/clients/dotnet/Directory.Build.props b/clients/dotnet/Directory.Build.props
new file mode 100644
index 0000000..7fb9866
--- /dev/null
+++ b/clients/dotnet/Directory.Build.props
@@ -0,0 +1,21 @@
+
+
+
+ Joseph Doherty
+ ZB MOM WW
+ Copyright (c) ZB MOM WW. All rights reserved.
+ MxAccessGateway Client
+ https://gitea.dohertylan.com/dohertj2/mxaccessgw
+ git
+ https://gitea.dohertylan.com/dohertj2/mxaccessgw
+ mxaccess;mxgateway;grpc;client;archestra
+ false
+
+ 0.1.0
+ true
+ snupkg
+ true
+
+ false
+
+
diff --git a/clients/dotnet/README.md b/clients/dotnet/README.md
index eca5e15..333df1f 100644
--- a/clients/dotnet/README.md
+++ b/clients/dotnet/README.md
@@ -299,6 +299,29 @@ $env:MXGATEWAY_TEST_ITEM = 'Area001.Pump001.Speed'
dotnet run --project clients/dotnet/ZB.MOM.WW.MxGateway.Client.Cli -- smoke --endpoint $env:MXGATEWAY_ENDPOINT --api-key-env MXGATEWAY_API_KEY --item $env:MXGATEWAY_TEST_ITEM --json
```
+## Installing as a NuGet Package
+
+The client publishes to the internal Gitea NuGet feed at
+`https://gitea.dohertylan.com/api/packages/dohertj2/nuget/index.json`.
+
+Add the feed once:
+
+````bash
+dotnet nuget add source https://gitea.dohertylan.com/api/packages/dohertj2/nuget/index.json \
+ --name dohertj2-gitea \
+ --username \
+ --password \
+ --store-password-in-clear-text
+````
+
+Then add the package to your project:
+
+````bash
+dotnet add package ZB.MOM.WW.MxGateway.Client --version 0.1.0
+````
+
+The `ZB.MOM.WW.MxGateway.Contracts` package is pulled in transitively.
+
## Related Documentation
- [Client Packaging](../../docs/ClientPackaging.md)
diff --git a/clients/dotnet/ZB.MOM.WW.MxGateway.Client/MxGatewayClientContractInfo.cs b/clients/dotnet/ZB.MOM.WW.MxGateway.Client/MxGatewayClientContractInfo.cs
index 0d95d71..d1aa583 100644
--- a/clients/dotnet/ZB.MOM.WW.MxGateway.Client/MxGatewayClientContractInfo.cs
+++ b/clients/dotnet/ZB.MOM.WW.MxGateway.Client/MxGatewayClientContractInfo.cs
@@ -7,9 +7,11 @@ namespace ZB.MOM.WW.MxGateway.Client;
///
public static class MxGatewayClientContractInfo
{
+ ///
public const uint GatewayProtocolVersion =
GatewayContractInfo.GatewayProtocolVersion;
+ ///
public const uint WorkerProtocolVersion =
GatewayContractInfo.WorkerProtocolVersion;
}
diff --git a/clients/dotnet/ZB.MOM.WW.MxGateway.Client/ZB.MOM.WW.MxGateway.Client.csproj b/clients/dotnet/ZB.MOM.WW.MxGateway.Client/ZB.MOM.WW.MxGateway.Client.csproj
index 1b46170..590435d 100644
--- a/clients/dotnet/ZB.MOM.WW.MxGateway.Client/ZB.MOM.WW.MxGateway.Client.csproj
+++ b/clients/dotnet/ZB.MOM.WW.MxGateway.Client/ZB.MOM.WW.MxGateway.Client.csproj
@@ -16,4 +16,15 @@
enable
+
+ true
+ ZB.MOM.WW.MxGateway.Client
+ .NET 10 gRPC client for the MxAccessGateway service. Provides typed wrappers, retry, and a lazy-browse walker over the Galaxy Repository hierarchy.
+ README.md
+
+
+
+
+
+
diff --git a/clients/rust/.cargo/config.toml b/clients/rust/.cargo/config.toml
index 4585dc3..9c159a3 100644
--- a/clients/rust/.cargo/config.toml
+++ b/clients/rust/.cargo/config.toml
@@ -17,3 +17,6 @@
# args through the GNU linker and reject `/STACK:`, are unaffected.
[target.'cfg(all(windows, target_env = "msvc"))']
rustflags = ["-C", "link-arg=/STACK:8388608"]
+
+[registries.dohertj2-gitea]
+index = "sparse+https://gitea.dohertylan.com/api/packages/dohertj2/cargo/"
diff --git a/clients/rust/Cargo.toml b/clients/rust/Cargo.toml
index 1e5787a..105db0a 100644
--- a/clients/rust/Cargo.toml
+++ b/clients/rust/Cargo.toml
@@ -2,7 +2,16 @@
name = "zb-mom-ww-mxgateway-client"
version = "0.1.0"
edition = "2021"
-publish = false
+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"
[workspace]
@@ -12,7 +21,10 @@ resolver = "2"
[workspace.package]
edition = "2021"
version = "0.1.0"
-publish = false
+authors = ["Joseph Doherty"]
+license = "Proprietary"
+repository = "https://gitea.dohertylan.com/dohertj2/mxaccessgw"
+publish = ["dohertj2-gitea"]
[workspace.dependencies]
clap = { version = "4.5.53", features = ["derive"] }
diff --git a/clients/rust/README.md b/clients/rust/README.md
index ea9cdec..b31dc8a 100644
--- a/clients/rust/README.md
+++ b/clients/rust/README.md
@@ -236,3 +236,27 @@ cargo run -p mxgw-cli -- smoke --endpoint $env:MXGATEWAY_ENDPOINT --plaintext --
- [Client Proto Generation](../../docs/ClientProtoGeneration.md)
- [Rust Client Detailed Design](./RustClientDesign.md)
- [Rust Style Guide](../../docs/style-guides/RustStyleGuide.md)
+
+## Installing from the Gitea Cargo registry
+
+The crate publishes to the internal Gitea Cargo registry. Register the
+registry once in your global `~/.cargo/config.toml`:
+
+```toml
+[registries.dohertj2-gitea]
+index = "sparse+https://gitea.dohertylan.com/api/packages/dohertj2/cargo/"
+```
+
+Authentication: cargo reads credentials from `~/.cargo/credentials.toml`:
+
+```toml
+[registries.dohertj2-gitea]
+token = "Bearer "
+```
+
+Then add the dependency:
+
+```toml
+[dependencies]
+zb-mom-ww-mxgateway-client = { version = "0.1.0", registry = "dohertj2-gitea" }
+```
diff --git a/clients/rust/crates/mxgw-cli/Cargo.toml b/clients/rust/crates/mxgw-cli/Cargo.toml
index a4e136f..e36c655 100644
--- a/clients/rust/crates/mxgw-cli/Cargo.toml
+++ b/clients/rust/crates/mxgw-cli/Cargo.toml
@@ -2,7 +2,7 @@
name = "mxgw-cli"
version.workspace = true
edition.workspace = true
-publish.workspace = true
+publish = false
[[bin]]
name = "mxgw"
diff --git a/src/ZB.MOM.WW.MxGateway.Contracts/GatewayContractInfo.cs b/src/ZB.MOM.WW.MxGateway.Contracts/GatewayContractInfo.cs
index 074af3c..fac7d5c 100644
--- a/src/ZB.MOM.WW.MxGateway.Contracts/GatewayContractInfo.cs
+++ b/src/ZB.MOM.WW.MxGateway.Contracts/GatewayContractInfo.cs
@@ -8,10 +8,13 @@ namespace ZB.MOM.WW.MxGateway.Contracts;
///
public static class GatewayContractInfo
{
+ /// Protocol version advertised to clients in OpenSessionReply.
public const uint GatewayProtocolVersion = 3;
+ /// Protocol version used to validate WorkerEnvelope framing on the gateway-worker pipe.
public const uint WorkerProtocolVersion = 1;
+ /// Default backend name identifying the MXAccess worker process type.
public const string DefaultBackendName = "mxaccess-worker";
///
diff --git a/src/ZB.MOM.WW.MxGateway.Contracts/ZB.MOM.WW.MxGateway.Contracts.csproj b/src/ZB.MOM.WW.MxGateway.Contracts/ZB.MOM.WW.MxGateway.Contracts.csproj
index f4c8dd8..95c0ec9 100644
--- a/src/ZB.MOM.WW.MxGateway.Contracts/ZB.MOM.WW.MxGateway.Contracts.csproj
+++ b/src/ZB.MOM.WW.MxGateway.Contracts/ZB.MOM.WW.MxGateway.Contracts.csproj
@@ -4,6 +4,24 @@
net10.0;net48
+
+ true
+ ZB.MOM.WW.MxGateway.Contracts
+ 0.1.0
+ Joseph Doherty
+ ZB MOM WW
+ Copyright (c) ZB MOM WW. All rights reserved.
+ Protobuf contracts and gRPC stubs for the MxAccessGateway service. Multi-targets net10.0 and net48.
+ https://gitea.dohertylan.com/dohertj2/mxaccessgw
+ git
+ https://gitea.dohertylan.com/dohertj2/mxaccessgw
+ mxaccess;mxgateway;grpc;contracts;protobuf
+ false
+ true
+ snupkg
+ true
+
+