d5248f61a2
- IPC-01: regenerate the stale client descriptor set and add ClientProtoInputTests (semantic, protoc-free) so a missing contract symbol fails the build. - IPC-20: make publish-client-proto-inputs.ps1 -Check source_code_info-normalized so it is protoc-version tolerant. - IPC-19: document + guard the "Generated/ must be committed for net48" rule (docs/Contracts.md, csproj comment, check-codegen.ps1). - IPC-09: harden the per-client generate-proto scripts (PATH resolution + pinned grpcio/protobuf/java version asserts) so regeneration is reproducible. - TST-03: add .gitea/workflows/ci.yml (portable/java/windows/live jobs) running the build, tests, client checks, and the codegen guards. - Also: check-codegen.ps1 Check 3 guards the CLI-02 vendored Rust protos against drift. archreview: IPC-01/09/19/20 Done, TST-03 In review (pipeline authored + validated, not yet run on a Gitea runner). Verified on macOS: NonWindows build clean, ClientProtoInputTests 5/5, -Check exit 0.
55 lines
3.2 KiB
XML
55 lines
3.2 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFrameworks>net10.0;net48</TargetFrameworks>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<IsPackable>true</IsPackable>
|
|
<PackageId>ZB.MOM.WW.MxGateway.Contracts</PackageId>
|
|
<Version>0.1.2</Version>
|
|
<Authors>Joseph Doherty</Authors>
|
|
<Company>ZB MOM WW</Company>
|
|
<Copyright>Copyright (c) ZB MOM WW. All rights reserved.</Copyright>
|
|
<Description>Protobuf contracts and gRPC stubs for the MxAccessGateway service. Multi-targets net10.0 and net48.</Description>
|
|
<RepositoryUrl>https://gitea.dohertylan.com/dohertj2/mxaccessgw</RepositoryUrl>
|
|
<RepositoryType>git</RepositoryType>
|
|
<PackageProjectUrl>https://gitea.dohertylan.com/dohertj2/mxaccessgw</PackageProjectUrl>
|
|
<PackageTags>mxaccess;mxgateway;grpc;contracts;protobuf</PackageTags>
|
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
|
<IncludeSymbols>true</IncludeSymbols>
|
|
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Generated\**\*.cs is Compile-Removed and regenerated by Grpc.Tools into the TRACKED Generated
|
|
folder. It MUST be committed after any .proto change: Grpc.Tools skips regeneration when the
|
|
committed output looks up to date, so on net10 the freshly regenerated code compiles (drift is
|
|
invisible) while the net48 worker, which consumes the COMMITTED Generated\*.cs, fails with
|
|
CS0246 on new types. Regenerate + commit after editing a .proto; if a build does not pick up
|
|
the change, delete Generated\*.cs to force a full regen. scripts/check-codegen.ps1 enforces
|
|
this in CI. See docs/Contracts.md. -->
|
|
<Compile Remove="Generated\**\*.cs" />
|
|
<Protobuf Include="Protos\mxaccess_gateway.proto" ProtoRoot="Protos" OutputDir="Generated" GrpcOutputDir="Generated" GrpcServices="Both" />
|
|
<Protobuf Include="Protos\mxaccess_worker.proto" ProtoRoot="Protos" OutputDir="Generated" GrpcServices="None" />
|
|
<!-- galaxy_repository.proto is intentionally retained even though the gateway SERVER now consumes
|
|
the wire-identical Galaxy types from the ZB.MOM.WW.GalaxyRepository package. This proto is
|
|
still the generation source of truth for the language clients (Go/Rust/Java/Python compile it
|
|
by path; the .NET client consumes Contracts.Proto.Galaxy.* via this project reference) and for
|
|
clients/proto/proto-inputs.json. Removing it breaks all five clients — do not delete. -->
|
|
<Protobuf Include="Protos\galaxy_repository.proto" ProtoRoot="Protos" OutputDir="Generated" GrpcOutputDir="Generated" GrpcServices="Both" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Google.Protobuf" Version="3.34.1" />
|
|
<PackageReference Include="Grpc.Core.Api" Version="2.76.0" />
|
|
<PackageReference Include="Grpc.Tools" Version="2.80.0">
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
<PrivateAssets>all</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|