icerpc / icerpc-csharp

A C# RPC framework built for QUIC, with bidirectional streaming, first-class async/await, and Protobuf support.
https://docs.icerpc.dev
Apache License 2.0
108 stars 13 forks source link

Refactor Build Telemetry into plugin for `protoc` and `slicec` #4016

Open ReeceHumphreys opened 4 months ago

ReeceHumphreys commented 4 months ago

Currently, as suggested by @pepone the BuildTelemetry works via a shared custom build task that gets called by the IceRpc.Slice.Tools and IceRpc.Protobuf.Tools. I think this approach is good for now as it is simple and does the job. However in the future, we should refactor this logic into a protoc plugin or slicec plugin.

ReeceHumphreys commented 4 months ago

Somewhat related, but could be split into a different issue, is @bernardnormier suggested an intermediate refactor before this too where we would split the task into a separate protobuf task and slicec task and have the build telemetry client logic live in these tasks rather than being a separate executable that gets invoked via the task.

I think given the eventual shift to a plugin this intermediate refactor is not really necessary.