From 8d043e9763aa3818b1ebb904a6c6efb5746e531b Mon Sep 17 00:00:00 2001 From: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Fri, 1 Nov 2024 15:59:04 -0500 Subject: [PATCH] Define prototype for proposed features in development (#4273) In the 10/22/24 spec SIG, we discussed that the prototyping requirement for newly proposed features with development maturity level has a "chicken and the egg" problem. This resolves by clarifying what counts as a prototype for these cases. --- CONTRIBUTING.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dd7e8dea65b..b58fa5cb0ca 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,6 +32,16 @@ Smaller changes can follow a shorter process: of the change, prototyping in multiple programming languages might be required by the [specification approvers](https://github.com/open-telemetry/community/blob/main/community-members.md#specifications-and-proto). + When proposing new features, we + encounter + a [chicken or the egg problem](https://en.wikipedia.org/wiki/Chicken_or_the_egg) + in that proposals require prototyping but language implementations require + features to be in the specification. For this reason, when adding new features + with Development maturity level, a prototype is defined as a working + demonstration of the feature in a language implementation which has the + support of that language's maintainers. For example, this may be an unmerged + PR with an indication of maintainers' intent to merge in the event the + corresponding specification PR is merged. Trivial changes, such as clarifications, wording changes, spelling/grammar corrections, etc. can be made directly via pull requests and do not require an associated