breaking: View selector and stream should be required#365
breaking: View selector and stream should be required#365jack-berg merged 3 commits intoopen-telemetry:mainfrom
Conversation
|
Makes sense. C++ already treat these as required, sorry I missed this in the schema (the yaml parser is hand written, not generated) |
Likewise in java
I think there even with generated parser there are likely other oversights hiding in the schema. You've identified a number of important ones, and I've been finding the new meta schema / |
For this, #357 will help a lot. If it's hard to write a reasonable description for what happens with a null field, maybe the field should be required. |
|
I have a question about tooling and yaml schema ... Is there a tool that:
The generated yaml does not need to be semantically correct, for example an endpoint can be "value-for-endpoint". The goal here is to feed this collection of yaml files to each language parser, as a stress test. Code that expects a node to be required in the SDK while it may be null in the schema should crash then when building an SDK, exposing implementation bugs. PS: We have a similar tool for MySQL, that generates random queries from a bison parser, doing the opposite of bison (take the grammar and generate stress tests, instead of parsing text using the grammar). |
I think so. Do we have a label for that ? |
|
We mark things as breaking in the changelog, but we should probably be better about updating the changelog in the PR itself rather than putting this responsibility on the release process |
MrAlias
left a comment
There was a problem hiding this comment.
LGTM. +1 to @codeboten's comment about needing to track this as a breaking change.
|
Yes we should track as a breaking change. Right now, I've been calling out breaking changes in the release notes and including migration notes for each occurrence, e.g: https://github.com/open-telemetry/opentelemetry-configuration/releases/tag/v0.4.0 I propose we add some additional lightweight structure around this:
|
A view without a selector or stream is nonsensical.