Skip to content

Commit bf18a88

Browse files
dyladanpichlermarc
andauthored
docs: document component maturity levels (open-telemetry#1474)
* docs: document component maturity levels * docs: link maturity levels from README * Typo Co-authored-by: Marc Pichler <[email protected]> * Link header instead of owner --------- Co-authored-by: Marc Pichler <[email protected]>
1 parent f718301 commit bf18a88

File tree

6 files changed

+104
-10
lines changed

6 files changed

+104
-10
lines changed

.github/component_owners.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ components:
44
- legendecas
55
detectors/node/opentelemetry-resource-detector-aws:
66
- carolabadeer
7-
detectors/node/opentelemetry-resource-detector-docker:
7+
detectors/node/opentelemetry-resource-detector-container:
88
- abhee11
99
detectors/node/opentelemetry-resource-detector-instana:
1010
- basti1302

CONTRIBUTING.md

+82
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
We'd love your help!
44

5+
- [Report a bug or requesting feature](#report-a-bug-or-requesting-feature)
6+
- [How to contribute](#how-to-contribute)
7+
- [Before you start](#before-you-start)
8+
- [Conventional commit](#conventional-commit)
9+
- [Fork](#fork)
10+
- [Running the tests](#running-the-tests)
11+
- [Generating API documentation](#generating-api-documentation)
12+
- [Generating CHANGELOG documentation](#generating-changelog-documentation)
13+
- [Benchmarks](#benchmarks)
14+
- [Component Ownership](#component-ownership)
15+
- [Component Lifecycle](#component-lifecycle)
16+
- [Unreleased](#unreleased)
17+
- [Experimental](#experimental)
18+
- [Beta](#beta)
19+
- [Stable](#stable)
20+
- [Unmaintained](#unmaintained)
21+
- [Deprecated](#deprecated)
22+
- [Contributing Vendor Components](#contributing-vendor-components)
23+
- [Adding a New Vendor Component](#adding-a-new-vendor-component)
24+
- [Removing Vendor Components](#removing-vendor-components)
25+
526
## Report a bug or requesting feature
627

728
Reporting bugs is an important contribution. Please make sure to include:
@@ -80,6 +101,67 @@ When two or more approaches must be compared, please write a benchmark in the be
80101

81102
- `npm run bench` to run your benchmark.
82103

104+
## Component Ownership
105+
106+
This repository contains many components which are maintained by more than the typical set of JS maintainers and approvers.
107+
Each component in this repository SHOULD have a component owner who is responsible for maintaining it.
108+
The README.md for each component SHOULD contain its owner, but the source of truth for component ownership is in [.github/component_owners.yml](.github/component_owners.yml).
109+
Component owners are generally given authority to make decisions relating to implementation and feature requests for their components, provided they follow the best practices set out by the maintainers.
110+
Component owners MUST do their best to maintain a high level of quality, security, performance, and specification compliance within their components.
111+
Maintainers may override the decisions of component owners, but should only do so when they feel one or more of these traits is compromised.
112+
113+
## Component Lifecycle
114+
115+
This repository contains many components in various stages of the component lifecycle.
116+
A component may be **unreleased**, **experimental**, **beta**, **stable**, **unmaintained**, or **deprecated**; see the below definitions for each stability level.
117+
With the exception of the stable status, it is up to each individual [component owner](#component-ownership) to determine the status of a component.
118+
A component may only be marked stable with the approval of a member of @open-telemetry/javascript-maintainers; see the definition of stable below for more details.
119+
120+
### Unreleased
121+
122+
Unreleased components are in active development and have not yet been released to NPM.
123+
Unreleased packages should have the property `private` in their `package.json` set to `true`.
124+
125+
### Experimental
126+
127+
Experimental packages are in active development.
128+
They should be considered unstable and potentially unsuitable for production use.
129+
They are released to NPM for developers and early adopters.
130+
Experimental components MUST have their major version set to `0`.
131+
If a component does not have an explicit status in its README.md file, it should be considered to be experimental.
132+
133+
### Beta
134+
135+
Beta packages are not yet considered stable, but an effort should be made to preserve stability across versions if possible.
136+
They may be ready for production use, but users should understand that their APIs or the telemetry they output MAY change if required.
137+
Beta components MUST have their major version set to `0`.
138+
139+
### Stable
140+
141+
This is the highest level of quality and maintainership guarantee provided in this repository.
142+
Stable packages should be considered stable and ready for production use.
143+
In order for a package to be marked stable, it must meet the following requirements:
144+
145+
- It MUST have a component owner that the JS maintainers feel confident will be responsive to issues and pull requests and will fulfill their responsibility competently.
146+
If a component owner is not responsive to issues and PRs, the maintainers may assign a new owner or change the status of the component to unmaintained.
147+
- All relevant specification relating to the component MUST be stable. For example, telemetry emitted by an instrumentation library should rely on a stable semantic convention.
148+
- It MUST be reviewed and approved by a member of @open-telemetry/javascript-maintainers.
149+
150+
Stable components MUST have their major version set to `1` or greater.
151+
152+
### Unmaintained
153+
154+
A component which does not have an assigned component owner, or has a component owner who has been unresponsive to issues and pull requests may be marked as unmaintained.
155+
Unmaintained components may continue to work and receive updates and fixes from contributors, but may not receive immediate attention if there is a problem or feature request.
156+
A component which is unmaintained may be deprecated if there is a problem that is not fixed in a timely manner.
157+
158+
### Deprecated
159+
160+
Deprecated components are no longer maintained and there are not currently plans to maintain them.
161+
They may not work and there are no guarantees for fixes or new features.
162+
Their source files may be deleted from the repository.
163+
Any packages released from their source will be marked as deprecated in NPM.
164+
83165
## Contributing Vendor Components
84166

85167
This repo is generally meant for hosting components that work with popular open-source frameworks and tools. However, it is also possible to contribute components specific to a 3rd party vendor in this repo.

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ This project includes:
5151

5252
**Resource Detectors**: OpenTelemetry can collect resource attributes of the entity that producing telemetry. For example, a process producing telemetry that is running in a container on Kubernetes has a Pod name, it is in a namespace and possibly is part of a Deployment which also has a name. All three of these attributes can be included in the `Resource`.
5353

54+
## Stability levels
55+
56+
Stability level for components in this repository follow the definitions in [CONTRIBUTING.md](./CONTRIBUTING.md).
57+
5458
## Supported Runtimes
5559

5660
Packages in this repository have a variable range of support for Node.JS and browser versions which for each package depend on

detectors/node/opentelemetry-resource-detector-aws/README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
Resource detector for Amazon Web Services.
99

10-
Compatible with OpenTelemetry JS API and SDK `1.0+`.
10+
## Status
11+
12+
| Maturity | [Component Owner](../../.github/component_owners.yml) | Compatibility |
13+
| ----------------------------------------- | ----------------------------------------------------- | --------------------- |
14+
| [Stable](../../../CONTRIBUTING.md#stable) | @carolabadeer | API 1.0+<br/>SDK 1.0+ |
1115

1216
## Installation
1317

packages/opentelemetry-id-generator-aws-xray/README.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@
33
[![NPM Published Version][npm-img]][npm-url]
44
[![Apache License][license-image]][license-image]
55

6-
[component owners](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/.github/component_owners.yml): @carolabadeer
7-
86
The OpenTelemetry IdGenerator for AWS X-Ray generates trace IDs with its first four bytes set to the start time of the
97
trace followed by a unique identifier consisting of 12 bytes of randomly generated numbers. OpenTelemetry offers an
108
extension point which allows the usage of this custom IdGenerator as opposed to the out-of-the-box random IdGenerator,
119
enabling compatibility with AWS X-Ray.
1210

13-
Compatible with OpenTelemetry JS API and SDK `1.0+`.
11+
## Status
12+
13+
| Maturity | [Component Owner](../../.github/component_owners.yml) | Compatibility |
14+
| -------------------------------------- | ----------------------------------------------------- | --------------------- |
15+
| [Stable](../../CONTRIBUTING.md#stable) | @carolabadeer | API 1.0+<br/>SDK 1.0+ |
1416

1517
## Installation
1618

17-
`
19+
```bash
1820
npm install --save @opentelemetry/id-generator-aws-xray
19-
`
21+
```
2022

2123
## Usage
2224

propagators/opentelemetry-propagator-aws-xray/README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
[![NPM Published Version][npm-img]][npm-url]
44
[![Apache License][license-image]][license-image]
55

6-
[component owners](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/.github/component_owners.yml): @carolabadeer
7-
86
The OpenTelemetry Propagator for AWS X-Ray provides HTTP header propagation for systems that are using AWS `X-Amzn-Trace-Id` format.
97
This propagator translates the OpenTelemetry SpanContext into the equivalent AWS header format, for use with the OpenTelemetry JS SDK.
108
`TraceState` is currently not propagated.
119

12-
Compatible with OpenTelemetry JS API and SDK `1.0+`.
10+
## Status
11+
12+
| Maturity | [Component Owner](../../.github/component_owners.yml) | Compatibility |
13+
| ----------------------------------------- | ----------------------------------------------------- | --------------------- |
14+
| [Stable](../../../CONTRIBUTING.md#stable) | @carolabadeer | API 1.0+<br/>SDK 1.0+ |
1315

1416
## Installation
1517

0 commit comments

Comments
 (0)