Closed ReeceHumphreys closed 2 weeks ago
Going to spin off the slicec-cs
+ the relevant IceRpc.Slice.Tools
part for the verbose output into a separate PR!
Whoops, I only just saw your comment about splitting up the PRs.
After thinking for a little bit, I have a potentially radical proposal:
I think we should make every field in the Slice Telemetry
struct tagged.
In the future, we'll probably add extra fields, and they'll have to be tagged anyways for backwards compatibility. And who knows, maybe some of the information which we think is useful to collect now, may end up not being useful later, and then it'd be nice to remove it from the struct. Tagging everything gives us maximum flexibility, and I think that's useful for this Slice definition.
XML formatting in this PR https://github.com/icerpc/icerpc-csharp/pull/4007
slicec-cs
metrics output PR https://github.com/icerpc/icerpc-csharp/pull/4008
Okay, most of the relevant review feedback for this PR has now been implemented! The only stuff for future PRs should be refining the slice definitions and data we collect, removing the testing certificate code once the telemetry server is deployed, and potentially removing the hashing code once we decide if we want to collect it or not.
The goal of this PR should just be to get the underlying structure in for the build telemetry client.
After talking about this on Monday with @bernardnormier and @InsertCreativityHere I want to emphasize this is really just an "Alpha" for the build telemetry uploading. Eventually we will shift to a plugin system and refine the fields we collect.
Thanks @pepone! This build system stuff is definitely not my expertise haha.
This PR introduces a simple telemetry client to the
IceRpc.Slice.Tools
andIceRpc.Protobuf.Tools
build pipeline. This initial proof of concept will require additional cleanup and refinement in subsequent PRs.Notes
slicec
as I had to temporarily point theCargo.toml
forslicec-cs
to GitHub to access the new hashing methods for slice files. The CI seems to not like this way of defining dependencies despite it being fine locally..props
and.targets
files. It seems that some are formatted and others are not which caused my local formatter to make changes when saving the files I edited.Future Planned PRs
TelemetryTask
could be improved. Assistance from someone more familiar with the C# build system would be beneficial such as @pepone .localhost
with the server's address../build.sh --publish
confirms that the telemetry client is triggered, further validation is required to ensure everything functions during a production deployment build.Edit: Opening this as a draft while I add a README.md, do my own final checks, and open the telemetry server PR. Edit 2: The CI failing will be resolved once we update slicec-cs to not use the slicec version on GitHub. No idea why the CI does not like it so much.