You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
otel4s provides a pure Scala implementation of the OpenTelemetry specification. The protocol models used by otel4s are generated from the third-party protos defined in opentelemetry-proto.
Currently, these models are generated in a public package, making them accessible on the classpath.
This poses a significant problem because opentelemetry-proto may introduce binary-breaking changes. As a result, any updates to the opentelemetry-proto can cause otel4s-sdk-exporter-proto to break binary compatibility.
Hi Maksym, have you tried auxiliary options to match all messages in the package using * as a target, and make them private, using the same approach from the FAQ you linked to?
The problem
otel4s provides a pure Scala implementation of the OpenTelemetry specification. The protocol models used by otel4s are generated from the third-party protos defined in opentelemetry-proto.
Currently, these models are generated in a public package, making them accessible on the classpath.
This poses a significant problem because opentelemetry-proto may introduce binary-breaking changes. As a result, any updates to the
opentelemetry-proto
can causeotel4s-sdk-exporter-proto
to break binary compatibility.https://scalapb.github.io/docs/faq/#how-do-i-mark-a-generated-case-class-private doesn't work because proto models are third-party.
The proposition
Perhaps we can extend the package-scoped options to allow customizing modifiers of a package?
The workaround
As a workaround, I customized the
PB.generate
task to override package and visibility afterward: typelevel/otel4s#860.The text was updated successfully, but these errors were encountered: