fix(IPC-36,IPC-37): guard secondary contracts
This commit is contained in:
@@ -94,6 +94,15 @@ only and does not share types with `mxaccess_gateway.proto`. See
|
||||
[Galaxy Repository Browse](./GalaxyRepository.md) for the RPC catalog and
|
||||
behavior.
|
||||
|
||||
The retained proto remains the client-generation source of truth while the
|
||||
gateway serves the wire-identical descriptor from the
|
||||
`ZB.MOM.WW.GalaxyRepository` package. `GalaxyContractParityTests` converts both
|
||||
loaded descriptors to `FileDescriptorProto`, removes source locations, and
|
||||
normalizes the C# namespace and file name before comparing deterministic bytes.
|
||||
Its mutation test also requires drift failures to identify the first differing
|
||||
protobuf message. Any parity failure must be resolved before publishing either
|
||||
Contracts or clients.
|
||||
|
||||
Generated C# output is written to `src/ZB.MOM.WW.MxGateway.Contracts/Generated/`. Do not
|
||||
hand-edit generated files.
|
||||
|
||||
@@ -140,6 +149,13 @@ Run the focused contract tests after changing either `.proto` file:
|
||||
dotnet test src/ZB.MOM.WW.MxGateway.Tests/ZB.MOM.WW.MxGateway.Tests.csproj --filter ProtobufContractRoundTripTests
|
||||
```
|
||||
|
||||
When changing `galaxy_repository.proto` or the served Galaxy Repository
|
||||
package, also run the retained-vs-served parity guard:
|
||||
|
||||
```bash
|
||||
dotnet test src/ZB.MOM.WW.MxGateway.Tests/ZB.MOM.WW.MxGateway.Tests.csproj --filter GalaxyContractParityTests
|
||||
```
|
||||
|
||||
The full solution build also regenerates the C# contracts before compiling
|
||||
gateway and test projects:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user