-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BREAKING CHANGE: Support stability definitions from OTEP 232 #504
BREAKING CHANGE: Support stability definitions from OTEP 232 #504
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall this looks great.
My only concern is unexpected breakages.
- We should likely call this out as a breaking change.
- We should update the default JQ functions (e.g.
exlcude_stability
) to keep working - We still will have breakages, possibly in REGO policies, depending on how they're written. I think this is manageable, but we should call out "BREAKING" in the PR description. I think the work you've done means likely this ONLY breaks the semantic conventions repo, but not codegen.
I do agree with @jsuereth that we should call out it is breaking - I will join maintainers call on Monday and socialize it. When SIGs run codegen they hopefully should be able to easily detect it and the fix should be straightforward. There are also just a few repos affected - https://github.com/search?q=org%3Aopen-telemetry+exclude_stability+language%3AYAML&type=code&l=YAML |
I think we can fix that usage (either in this PR or a follow on). I was more worried about this: https://github.com/search?q=org%3Aopen-telemetry+%22.stability%22+language%3A%22Open+Policy+Agent%22&type=code However, looking there, it's only used by semconv so far AND we only rely on the string @jerbly I'll send you a snippet for default JQ helpers if you don't get to this before tomorrow. |
@jerbly So, in # Expands stability array that previously used "experimental" for equivalent new strings.
def expand_stability($stability):
if $stability | index("experimental") then
$stability + [ "development", "alpha", "beta", "release_candidate" ]
else
.
end; Then modify the methods This should ensure that codegen which splits stable from experimental continues to work. |
Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #504 +/- ##
=======================================
- Coverage 73.9% 73.9% -0.1%
=======================================
Files 50 50
Lines 3911 3914 +3
=======================================
+ Hits 2894 2895 +1
- Misses 1017 1019 +2 ☔ View full report in Codecov by Sentry. |
@jsuereth - I made your change to the default semconv.jq (couldn't use - template: semconv_grouped_attributes_without_experimental.json
filter: >
semconv_grouped_attributes({
"exclude_root_namespace": ["url", "network"],
"exclude_stability": ["experimental"]
})
application_mode: single @lmolkova - committed your change so the experimental test means non-stable. |
Ah right, the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for this @jerbly !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thank you Jeremy!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!!!
BREAKING CHANGE:
stable
,development
,deprecated
,alpha
,beta
,release_candidate
unmaintained
is not supported yet.experimental
is still accepted when parsing but aliased todevelopment
.experimental
, now returns true for any variant other thanstable
anddeprecated
.experimental
variant.