|
| 1 | +# Move OTEPS to the Specification repository |
| 2 | + |
| 3 | +Let's move OTEP documentation and PRs back into the github.com/open-telemetry/opentelemetry-specification repository. |
| 4 | + |
| 5 | +## Motivation |
| 6 | + |
| 7 | +Moving OTEPs back into the specification solves two main issues: |
| 8 | + |
| 9 | +- Maintaining its tooling infrastructure (currently woefully out of date) |
| 10 | +- Bringing it into the existing triage and voting process currently within the |
| 11 | + Specification. |
| 12 | + |
| 13 | +## Explanation |
| 14 | + |
| 15 | +Originally, OTEPs were kept as a separate repository to keep disjoint/disruptive designs as a separate repository. There are a few differences between a normal PR and an OTEP: |
| 16 | + |
| 17 | +- OTEPs are expected to be directional and subject to change when actually entered into the specification. |
| 18 | +- OTEPs require more approvals than specification PRs |
| 19 | +- OTEPs have different PR worklfows (whether due to accidental omission or conscious decision), e.g. staleness checks, linting. |
| 20 | + |
| 21 | +As OpenTelemetry is stabilizing, the need for OTEPs to live outside the specification is growing less, and we face challenges like: |
| 22 | + |
| 23 | +- Keeping OTEP tooling up to date |
| 24 | +- Advertising the repositories existence |
| 25 | + - New contributors to OpenTelemetry often can't find recorded decision that exist in OTEPs. |
| 26 | + - Getting reviews from folks used to checking the Specification repository, but not the less-frequently-worked-on OTEP repository. |
| 27 | + |
| 28 | +To solve these, let's move OTEPs into a directory within the [specification repository](github.com/open-telemetry/opentelemetry-specification). |
| 29 | +We would also update all tooling and expected reviews to match existing standards for OTEPs. Given the maintainers of OTEPs are the same as |
| 30 | +maintainers of the specification, this should not change the bar for acceptance. |
| 31 | + |
| 32 | +## Internal details |
| 33 | + |
| 34 | +The following changes would occur: |
| 35 | + |
| 36 | +- The following files would be moved to the specification repo: |
| 37 | + - `text/` directory -> `oteps/text/` |
| 38 | + - `0000-template.md` -> `oteps/0000-template.md` |
| 39 | +- Update the specification `Makefile` to include linting, spell checking, link checking and TOC-ing the oteps directory. |
| 40 | +- A one-time cleanup of OTEP markdown upon import to the specification repository. |
| 41 | +- Close existing OTEP PRs and ask folks to reopen against the specification repository. |
| 42 | +- New labels within the specification repository to tag OTEPs, including automation to set these on PR open. |
| 43 | +- Updating contributing guidelines to include a section about OTEPs. |
| 44 | +- Add `oteps/README.md` file outlining that OTEPS are not normative and part of enhancement proposal process. |
| 45 | +- Add disclaimer to the header of every OTEP that the contents are not normative and part of the enhancement proposal process. |
| 46 | + |
| 47 | +## Trade-offs and mitigations |
| 48 | + |
| 49 | +Moving into the specification repository DOES mean that we would have a directory with a different quality bar and, somewhat, process than the rest of the repository. |
| 50 | +This can be mitigated through the use of clear, vibrant labels for OTEPS, and updating process guidelines for the specification repository to retain the important |
| 51 | +aspects of the current OTEP status. |
| 52 | + |
| 53 | +## Prior art and alternatives |
| 54 | + |
| 55 | +OTEPs were originally based on common enhancement proposal processes in other ecosystems, where enhancements live outside core repositories and follow a more rigorous criteria and evaluation. We are finding this |
| 56 | +problematic for OpenTelemetry for reasons discussed above. Additionally, unlike many other ecosystems where enhancement/design is kept separate from core code, OpenTelemetry *already* keeps its design separate |
| 57 | +form core code via the Specification vs. implementation repositories. Unlike these other OSS projects, our Specification generally requires rigorous discussion, design and prototyping prior to acceptance. Even |
| 58 | +after acceptance into the specification, work is still required for improvements to roll out to the ecosystem. Effectively: The OpenTelemetry specification has no such thing as a "small" change: There are only medium changes that appear small, but would be enhancements in other proejcts or large changes that require an OTEP. |
| 59 | + |
| 60 | +## Open questions |
| 61 | + |
| 62 | +What are the important portions of the OTEP process to bring over? Have we missed anything in this description? |
| 63 | + |
| 64 | +## Future possibilities |
| 65 | + |
| 66 | +In the future, we could figure out how to make OTEPs more searchable, discoverable and highlighted within the opentelemetry.io website. |
| 67 | + |
| 68 | +Additionally, we can look at extending staleness deadlines for OTEP labeled PRs. |
0 commit comments