Commit Graph

2 Commits

Author SHA1 Message Date
tony
83cdbfff8c [csharp proto plugin] Apply Obsolete attribute to deprecated services and methods in C# generated code (#32414)
Apply Obsolete attribute to deprecated services and methods in C#
generated code

Fix for https://github.com/grpc/grpc/issues/28597

- Deprecated support for enums and enum values is already fixed by
https://github.com/protocolbuffers/protobuf/pull/10520 but this is not
yet released. It is fixed in Protocol Buffers v22.0-rc1 but the gRPC
repo currently has 21.12 as the protocol buffers submodule.

- Deprecated support for messages and fields already exists in the
protocol buffers compiler.

The fix in this PR adds `Obsolete` attribute to classes and methods for
deprecated services and methods within services. e.g.
```
service Greeter {
  option deprecated=true; // service level deprecated
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {
    option deprecated=true; // method level deprecated
  }
}
```

I couldn't find any protocol buffers plugin tests to update. Tested
locally.
2023-04-26 11:25:22 -07:00
tony
25192afda1 [csharp] Initial C# codegen tests. (#32734)
Initial bazel tests for C# protoc and grpc_protoc_plugin.

This initial test just generated code from the proto file and compares
the generated code against expected files.

I've put the tests in `test/csharp/codegen` as that is similar to where
the C++ tests are placed, but they could be moved to
`src\csharp` if that is a better place.

Further tests can be added once the initial framework for the tests is
agreed.
2023-04-19 13:20:24 +02:00