Skip to content
This repository was archived by the owner on Dec 6, 2024. It is now read-only.

Commit 87cbc6f

Browse files
authored
Merge branch 'main' into env-context-prop
2 parents 482530b + d1f73ee commit 87cbc6f

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

text/0266-move-oteps-to-spec.md

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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

Comments
 (0)