-
Notifications
You must be signed in to change notification settings - Fork 894
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
Initial cut at laying out core principles for Specification change. #4286
Initial cut at laying out core principles for Specification change. #4286
Conversation
Co-authored-by: Yuri Shkuro <[email protected]>
Co-authored-by: Yuri Shkuro <[email protected]>
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 with some minor suggestions.
Co-authored-by: Reiley Yang <[email protected]>
Co-authored-by: Reiley Yang <[email protected]>
Co-authored-by: Reiley Yang <[email protected]>
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.
1 minute review, will do better once I find some time.
Co-authored-by: Pablo Baeyens <[email protected]>
Co-authored-by: Pablo Baeyens <[email protected]>
Co-authored-by: Robert Pająk <[email protected]>
Co-authored-by: Tyler Yahn <[email protected]>
Co-authored-by: Yuri Shkuro <[email protected]>
Co-authored-by: Robert Pająk <[email protected]>
Co-authored-by: Robert Pająk <[email protected]>
Co-authored-by: Robert Pająk <[email protected]>
Co-authored-by: Robert Pająk <[email protected]>
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.
All LGTM, except one sub-principle which I think can be misinterpreted, see the comment.
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.
I don't disagree with anything in here, but wish there was some way to give more practical advice on a few topics I see coming up a lot:
- Should we extend an interface, even when its allowed? Extending interfaces is easier in some languages than others. Ideally we get it right the first time (and we should strive for this), but in the event we don't, when does the value of extending an interface trump the friction it causes in the languages where they are hard to extend? This is related the "be stable" value, but not entirely captured.
- Language implementation or collector. We often have proposals for use cases that could be done in the collector, but could also be done in the SDK which is advantageous to some users who don't want to use the collector (or in some cases can't). Given that spec API / SDK features need to implemented 11 times, when is it appropriate to reject a API / SDK feature proposal that can be accomplished in the collector? Doing so can help us focus on more pressing problems, and potentially simplify user story by reducing the number of ways to accomplish the same thing.
- Plugin extension point or structured config. There’s a trade off between SDK plugin extension points (i.e. exporters, processors, samplers), and a more limited or structured approach (i.e. exemplar filters, attribute limits). SDK plugin extension points offer more flexibility but generally have more cumbersome and less standardized configuration. Reducing flexibility (or adding guardrails) can add safety and improve UX in certain domains. When do we choose one or the other? This is related to the "be simple".
It could be the case that we don't have enough experience yet to extract out useful principles on these, but these are the types of questions I see recurring.
Approving because while I think there's even more we could offer contributors, I agree with what is written here.
@jack-berg I think maybe your specific things can be "examples" or "faq" section. I've been thinking about this comment (and @tigrannajaryan's) for a bit, I'm going to give this an update to account for that, will notify when it's complete. Agree we should address common concerns and show the interplay of these principles. |
As we have enough approvals, one option is to address the important points raised by @jack-berg as a follow up. |
@carlosalberto That sounds like a plan, it's going to be a new section anyway. I'll address @tigrannajaryan's comments and we can follow up with @jack-berg's in a future PR |
Opened #4293 to address |
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.
Left a minor comment, not a blocker!
Very glad to see this written down.
Fixes #4276
Changes
Documents the values we use when evaluating specification changes. Also sort out the specification README to clarify which components cover Principles and Values.
CHANGELOG.md
file updated for non-trivial changesspec-compliance-matrix.md
updated if necessary