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 + +