Skip to content

Commit 5b557b1

Browse files
committed
chore: Add component owners workflow
Add the component owners workflow to automatically assign owners to pull requests when changes are proposed for their gem. This is blocked until we can make sure all component owners are members of the OpenTelemetry organization on GitHub and are added as members of the ruby-contrib-triagers team.
1 parent d554343 commit 5b557b1

File tree

5 files changed

+101
-41
lines changed

5 files changed

+101
-41
lines changed

.github/component_owners.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Keep all in alphabetical order
2+
components:
3+
instrumentation/active_storage:
4+
- ymtdzzz
5+
instrumentation/aws_sdk:
6+
- jterapin
7+
- alextwoods
8+
- NathanielRN
9+
instrumentation/grape:
10+
- muripic
11+
instrumentation/graphql:
12+
- swalkinsha
13+
- rmoslogo
14+
instrumentation/grpc:
15+
- michal-kazmierczak
16+
instrumentation/httpx:
17+
- HoneyryderChuck
18+
instrumentation/mongo:
19+
- johnnyshields
20+
instrumentation/racecar:
21+
- chrisholmes
22+
instrumentation/rspec:
23+
- chrisholmes
24+
instrumentation/que:
25+
- indrekj
26+
processor/baggage:
27+
- robbkidd
28+
- mikegoldsmith
29+
resources/container:
30+
- scbjans
31+
sampler/xray:
32+
- jj22ee
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: 'Component Owners'
2+
on:
3+
pull_request_target:
4+
5+
permissions:
6+
contents: read
7+
8+
jobs:
9+
run_self:
10+
permissions:
11+
pull-requests: write # required for assigning reviewers to PRs
12+
runs-on: ubuntu-latest
13+
name: Auto Assign Owners
14+
steps:
15+
- uses: dyladan/[email protected]
16+
with:
17+
config-file: .github/component_owners.yml
18+
repo-token: ${{ secrets.GITHUB_TOKEN }}

CODEOWNERS

Lines changed: 0 additions & 41 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,55 @@ In addition, when a change is complex or a reviewer is unfamiliar with the code,
231231
the reviewer may seek additional reviews from people more familiar with the
232232
change before merging a PR.
233233

234+
## Component Ownership
235+
236+
This repository contains many components which are maintained by more than the typical set of ruby-contrib maintainers and approvers.
237+
Each component in this repository SHOULD have a component owner who is responsible for maintaining it.
238+
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).
239+
240+
Component owners are generally given authority to make decisions relating to implementation and feature requests for their components,
241+
provided they follow the best practices set out by the maintainers and the [mission, vision and values](https://github.com/open-telemetry/community/blob/main/mission-vision-values.md)
242+
of the OpenTelemetry Project. To facilitate independent triage of issues pertaining to the owned component, component owners are assigned
243+
[the Triager role](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#triager).
244+
245+
Component owners MUST do their best to maintain a high level of quality, security, performance, and specification compliance within their components.
246+
Maintainers may override the decisions of component owners, but should only do so when they feel one or more of these traits is compromised.
247+
248+
### Becoming a Component Owner
249+
250+
To become a component owner, contributors MUST be a [member](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#member) of the OpenTelemetry GitHub organization.
251+
To become a member, follow the steps in the [community guidelines for membership requirements](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#requirements).
252+
253+
To become a component owner, contributors SHOULD demonstrate prior knowledge of the instrumented package or the concepts therein.
254+
255+
Ways do to so may be by providing proof of:
256+
257+
- current or prior involvement with the community that develops the upstream package
258+
- **Example:** A person working on MongoDB requesting ownership over a MongoDB instrumentation
259+
- current or prior involvement with a community that develops systems with similar concepts
260+
- **Example:** A person previously working on MySQL requesting ownership of a instrumentation package that instruments another database client library instrumentation.
261+
- current or prior extensive use of the instrumented package in other project they are involved in
262+
- **Example:** A person working at a company that makes extensive use of the `koala` library requesting ownership of the `opentelemetry-instrumentation-koala` package.
263+
- a vested interest in the telemetry being emitted from that instrumentation
264+
- **Example:** A person employed at an observability vendor that relies on the continued maintenance of the instrumentation
265+
266+
**Examples of proof may include but are not limited to:**
267+
268+
- Links to issues/PRs they worked on
269+
- Links to blog posts authored by them on behalf of the organization developing that system
270+
- Membership in GitHub teams/organizations that are associated with the development of the upstream package
271+
272+
Aspiring Component Owners MUST agree to uphold the [mission, vision and values](https://github.com/open-telemetry/community/blob/main/mission-vision-values.md) of the OpenTelemetry project.
273+
Further, aspiring component owners are expected to have knowledge of the [OpenTelemetry Semantic Conventions](https://github.com/open-telemetry/semantic-conventions)
274+
and MUST agree to adhere to the rules set out therein.
275+
276+
If all these conditions are met, aspiring component owners are encouraged to self-nominate by opening an issue.
277+
@open-telemetry/ruby-contrib-maintainers will then engage on the issue, may ask questions, and will then - based on the
278+
information provided on the issue - either approve or deny the ownership request. If the ownership request has been
279+
approved, the new component owner opens a PR to add themselves to the list of owners ([.github/component_owners.yml](.github/component_owners.yml))
280+
for that package.
281+
@open-telemetry/ruby-contrib-maintainers will add the component owner to @open-telemetry/ruby-contrib-triagers.
282+
234283
## Releases
235284

236285
This repository includes a set of tools for releasing gems. Only maintainers

instrumentation/CONTRIBUTING.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ In addition to the requirements to maintain at least [community member status](h
2222
* Ruby language changes
2323
* Instrumented library changes
2424

25+
When you become a component owner, you will be added to the `opentelemetry/ruby-contrib-triagers` group and will be automatically assigned to pull requests related to your component.
26+
2527
If you do not have the capacity to maintain the instrumentation library, please consider contributing to the OpenTelemetry Ruby project in other ways or consider creating a separate project for the instrumentation library.
2628

2729
> :warning: Libraries that do not meet these requirements may be removed from the project at any time at the discretion of OpenTelemetry Ruby Contrib Maintainers.

0 commit comments

Comments
 (0)