diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c2b7513bc..9a9164724f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -87,10 +87,6 @@ The `opentelemetry-js-contrib` project is written in TypeScript. - `npm test` tests code the same way that our CI will test it. - `npm run lint:fix` lint (and maybe fix) any changes. -### Generating API documentation - -- `npm run docs` to generate API documentation. Generates the documentation in `packages/opentelemetry-api/docs/out` - ### Generating CHANGELOG documentation - `npm run changelog` to generate CHANGELOG documentation in your terminal (see [RELEASING.md](RELEASING.md) for more details). @@ -117,6 +113,9 @@ A component may be **unreleased**, **experimental**, **beta**, **stable**, **unm With the exception of the stable status, it is up to each individual [component owner](#component-ownership) to determine the status of a component. 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. +A Pull Request modifying components in any stage of the lifecycle is subject to the +[Pull Request Merge Requirements](#pull-request-merge-requirements). + ### Unreleased Unreleased components are in active development and have not yet been released to NPM. @@ -162,6 +161,33 @@ They may not work and there are no guarantees for fixes or new features. Their source files may be deleted from the repository. Any packages released from their source will be marked as deprecated in NPM. +## Pull Request Merge Requirements + +Pull requests MAY be merged by an approver OR a maintainer provided they meet all the following requirements: + +- Approved by + - at least one component owner if one is defined in [.github/component_owners.yml](.github/component_owners.yml) + - OR one maintainer + - OR at least one approver who is not the approver merging the pull request + - A pull request for small (simple typo, URL, update docs, or grammatical fix) changes may be approved and merged by the same approver +- No “changes requested” reviews or unresolved conversations by + - approvers + - maintainers + - technical committee members + - component owners + - subject-matter experts +- New or changed functionality is tested by unit tests +- New or changed functionality is documented if appropriate +- Substantial changes should not be merged within 24 hours of opening in order to allow reviewers from all time zones to have a chance to review + +All requirements are at the discretion of the maintainers. +Maintainers MAY merge pull requests which have not strictly met these requirements. +Maintainers MAY close, block, or put on hold pull requests even if they have strictly met these requirements. + +If a PR has not been interacted with by a reviewer within one week, please ping the component +owners as listed in [.github/component_owners.yml](.github/component_owners.yml), if component owners are unresponsive +please ping ([@open-telemetry/javascript-approvers](https://github.com/orgs/open-telemetry/teams/javascript-approvers)). + ## Contributing Vendor Components 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.