Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add skeleton for maintainer and contributor guidebooks #2051

Merged
merged 32 commits into from
Aug 1, 2024
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
711885c
initial commit
austinlparker Apr 12, 2024
29138a6
Merge branch 'main' into addGuideSkeleton
austinlparker Apr 12, 2024
5c2eaf9
fix checks
austinlparker Apr 14, 2024
b49fe3a
fix link
austinlparker Apr 14, 2024
0fe8e09
Merge branch 'main' into addGuideSkeleton
austinlparker Apr 14, 2024
aeb310c
Update guides/contributor/CLA.md
austinlparker Apr 19, 2024
955ce1c
Update guides/contributor/README.md
austinlparker Apr 19, 2024
3a01550
Update guides/contributor/README.md
austinlparker Apr 19, 2024
e117b0c
Merge branch 'main' into addGuideSkeleton
austinlparker Apr 19, 2024
6856213
Merge branch 'main' into addGuideSkeleton
austinlparker Apr 25, 2024
912fc0f
Update guides/README.md
austinlparker Apr 25, 2024
4ad744a
Update guides/contributor/CLA.md
austinlparker Apr 25, 2024
d4af3d6
Update guides/contributor/README.md
austinlparker Apr 25, 2024
23b4629
Update guides/maintainer/README.md
austinlparker Apr 25, 2024
3614783
Update guides/contributor/CLA.md
austinlparker Apr 25, 2024
93915ea
continue work on contributor guide
austinlparker Apr 26, 2024
af865ba
Merge branch 'main' into addGuideSkeleton
austinlparker Apr 26, 2024
d2d7d32
fix issues
austinlparker May 6, 2024
1f0f3b2
Update guides/contributor/processes.md
austinlparker Jun 21, 2024
dcb0df4
Update guides/contributor/README.md
austinlparker Jun 21, 2024
552181e
Update guides/contributor/README.md
austinlparker Jun 21, 2024
c3ecce2
Update guides/contributor/donations.md
austinlparker Jun 21, 2024
392bda6
Update guides/contributor/donations.md
austinlparker Jun 21, 2024
c35ae8d
Update guides/contributor/donations.md
austinlparker Jun 21, 2024
a667167
Update guides/contributor/donations.md
austinlparker Jun 21, 2024
95c19f8
Update guides/contributor/donations.md
austinlparker Jun 21, 2024
ccd216c
Update guides/contributor/donations.md
austinlparker Jun 21, 2024
78b898d
Update guides/contributor/processes.md
austinlparker Jun 21, 2024
22dda66
Update guides/maintainer/conflict-resolution.md
austinlparker Jun 21, 2024
8b62009
resolve merge conflict
svrnm Aug 1, 2024
ad20a7e
Merge branch 'main' into addGuideSkeleton
svrnm Aug 1, 2024
8fecf36
fix merge conflict
svrnm Aug 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ ignoreRegExpList:
- Google Docs ID
words:
- DASD
- Docu
- dynatrace
- easycla
- eiffel
Expand Down Expand Up @@ -82,7 +83,9 @@ words:
- faas
- fong
- gitter
- gitdm
- henrikrexed
- heptio
- hongalex
- horovits
- jackjia
Expand Down
10 changes: 10 additions & 0 deletions guides/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# OpenTelemetry Guidebooks

This directory contains a collection of guides meant for contributors,
maintainers, and community members. These guides are meant to help you get
started, answer common questions, and provide best practices for being a part of
the OpenTelemetry community. These should be considered a living resource, and
everyone is welcome to contribute to them!

- [Contributor Guide](./contributor/README.md)
- [Maintainer Guide](./maintainer/README.md)
88 changes: 88 additions & 0 deletions guides/contributor/CLA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# The Contributor License Agreement

The [Cloud Native Computing Foundation](https://www.cncf.io) (CNCF) defines
the legal status of the contributed code in two different types of _Contributor License Agreements_
(CLAs), [individual contributors](https://github.com/cncf/cla/blob/main/individual-cla.pdf) and [corporations](https://github.com/cncf/cla/blob/main/corporate-cla.pdf).

OpenTelemetry can only accept original source code from CLA signatories.

It is important to read and understand this legal agreement.

## How do I sign?

After creating your first Pull Request, the linux-foundation-easycla bot will respond with information regarding your CLA status along with a link to sign the CLA.

<img width="1065" alt="EasyCLA bot" src="https://user-images.githubusercontent.com/69111235/152226443-f6fe61ee-0e92-46c5-b6ea-c0deb718a585.png">

#### 1. If you are signing up as a corporate contributor, ensure that you have linked your corporate email address to your GitHub profile (it doesn't have to be your primary email address for GitHub) or else it can lead to issues with the CLA system.
svrnm marked this conversation as resolved.
Show resolved Hide resolved

For more information, please see [Adding an email address to your GitHub account](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/adding-an-email-address-to-your-github-account).

#### 2. Authorize EasyCLA to read some of your GitHub information

<img width="554" alt="GitHub EasyCLA Authorization" src="https://user-images.githubusercontent.com/69111235/152228712-7d22f9d0-9f3c-4226-9ee0-bacba4b47725.png">

- Click on the **Please click here to be authorized** link to navigate to the GitHub Authorize Linux Foundation: EasyCLA page.
- Then click **Authorize LF-Engineering** to give the Linux Foundation read-only access to list the email addresses associated with your GitHub account.

#### 3. Select from the two types of contributor

<img width="1407" alt="EasyCLA" src="https://user-images.githubusercontent.com/69111235/152224818-1246453a-b086-4a57-9d14-c10d62ad438f.png">


After authorizing EasyCLA, you will be redirected to a page to identify which type of contributor you are.
Select the most appropriate option:
* Individual Contributor: You are contributing as yourself, and not as part of another organization.
* Corporate Contributor: You are contributing on behalf of your employer or other organization.

#### 4. Sign the CLA

Once you select the type of contributor, proceed to Sign the CLA and follow the instructions to complete the signing process through DocuSign.

After you have filled out the information, Click "Finish" and you will be redirected back to your Pull Request.

#### 5. Look for an email indicating successful signup.

> Hello,
>
> This is a notification email from EasyCLA regarding the project Cloud Native Computing > Foundation (CNCF).
>
> The CLA has now been signed. You can download the signed CLA as a PDF here.
>
> If you need help or have questions about EasyCLA, you can read the documentation or reach out to us for support.
>
> Thanks,
> EasyCLA Support Team



#### 6. Validate your CLA

Once you are redirected back to your GitHub Pull Request, reply with a comment `/easycla` to update the CLA status of your PR,
if the bot hasn't picked up the change automatically yet.


## Changing your Affiliation

If you've changed employers and still contribute to OpenTelemetry, your affiliation
needs to be updated. The Cloud Native Computing Foundation uses [gitdm](https://github.com/cncf/gitdm)
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
to track who is contributing and from where. Create a pull request on the [gitdm](https://github.com/cncf/gitdm)
repository with a change to the corresponding developer affiliation text file.
Your entry should look similar to this:

```
Jorge O. Castro*: jorge!heptio.com, jorge!ubuntu.com, jorge.castro!gmail.com
Heptio
Canonical until 2017-03-31
```

In addition, be sure to update your affiliation on [OpenProfile](https://openprofile.dev).

## Troubleshooting

If you encounter any problems signing the CLA and need further assistance, log a ticket by clicking on the link 'please submit a support request ticket' from the EasyCLA bot's response. Someone from the CNCF will respond to your ticket to help.

Should you have any issues using the LF Support Site, send a message to the
backup email support address <[email protected]>

[Linux Foundation Support Site]: https://support.linuxfoundation.org/
67 changes: 67 additions & 0 deletions guides/contributor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# OpenTelemetry New Contributor Guide
austinlparker marked this conversation as resolved.
Show resolved Hide resolved

Welcome to OpenTelemetry! We're excited for you to join us. This guide will help
you get started by providing an overview of the project, how we work together,
and point you towards helpful resources.
austinlparker marked this conversation as resolved.
Show resolved Hide resolved

## Table of Contents

- [What is OpenTelemetry?](#what-is-opentelemetry)
- [Prerequisites](#prerequisites)

## What is OpenTelemetry?

OpenTelemetry is a framework for application telemetry data. If you've ever
checked how much memory a process is using on your computer, or looked at the
size of a file, you've already interacted with telemetry! Cloud-native systems
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
create, emit, and process many millions of telemetry points every second as they
run. In addition, the developers of cloud native software need to describe what
their applications are doing in production in order to find bugs, optimize their
system performance, and understand their applications. OpenTelemetry provides a
single standard for creating and collecting this telemetry, transforming it as
needed, and exporting it to dozens of analysis tools.

## Prerequisites

Before you submit code to OpenTelemetry, you'll need to have a few things set
up:

### Create a GitHub account

Before getting started, you'll need to [sign up](http://github.com/signup) for a
GitHub account.

### Sign the CLA

Before we can accept your code, you'll need to sign the [Contributor License
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
Agreement](./CLA.md). This is a one-time process.

### Code of Conduct

Please make sure to read and follow our [Code of Conduct](../../code-of-conduct.md).

### Making a contribution

Please see [contribution processes](./processes.md) for more information on how
to make a contribution to an OpenTelemetry repository.

### Community Expectations and Roles

OpenTelemetry is a community-driven project. We welcome contributions from all
interested parties, regardless of affiliation. Our success is dependent on the
community to provide a professional, productive, friendly, and collaborative
environment.

- Review the [Mission, Vision, and Values](../../mission-vision-values.md) to
understand the goals of the project.
- Read the [Community Membership](../../community-membership.md) to understand
the roles and responsibilities of the community.
- As you gain experience, we encourage you to move up the ladder from member to
triager, approver, and maintainer!

## Next Steps

Now that you've read through this guide, you're ready to start contributing to
the project.

<!-- TODO: Flesh out this section -->
60 changes: 60 additions & 0 deletions guides/contributor/donations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Donations

Donations of preexisting code fall into two broad categories:

* **Small donations:** Some donations only amount to a single PR and should
svrnm marked this conversation as resolved.
Show resolved Hide resolved
usually just be contributed as such
* **Large or complex donations:** Other donations are much larger, require
ongoing maintenance of their own, and/or introduce nuanced licensing issues

Large donations – or small donations that turn up complex issues during PR
review – should be referred to the Technical Committee (TC) by filing an issue
in this `community` repository and tagging
`@open-telemetry/technical-committee`. The TC will respond to donation
proposals **within two weeks** (that is, after having time to meet and discuss
live). If the TC has not responded to the donation request within that
interval, the donating party can and should point to this document and request
guidance at the TC's earliest convenience.

All donated code requires a license compatible with the Apache Software License
2.0, and donated code will require a change of copyright to reflect the
OpenTelemetry Authors. The Governance Committee will also ask to review any
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
trademarks (like the names of components) the donation can carry and make a
decision to either remove those trademarks or transfer them to the CNCF.

## Donation process

Broadly, these are the steps the OpenTelemetry Governance and Technical
Committees follow to handle a prospective donation.

1. Per the above, the donating organization creates a GitHub issue using
the "Donation Proposal" form in the `community` repository.
2. The Governance Committee (GC) will evaluate the proposal to ensure that
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
the donation is aligned with the overall OpenTelemetry project vision
and roadmap and has a balanced set of interested contributors and maintainers.
The GC is also responsible for driving awareness in the community about
the contribution and making sure all interested parties have a chance to
object and/or contribute. The GC should work with any appropriate Special Interest
Groups or Working Groups to evaluate the donation proposal, consider alternatives,
and ensure OTel has the resources required to support the donation. When
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
considering alternatives, the GC should consider at least the CNCF ecosystem,
and may also consider other well-known open source projects or alternatives proposed
by the community.
3. If a donation proposal passes the initial GC screening, the Technical Committee (TC)
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
will conduct due diligence to determine if the proposed donation can be effectively
integrated into the OpenTelemetry project in a way that meets the quality, security,
and privacy standards of the project without violating stable specification or OTEPs.
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
The TC will summarize their findings, and make a recommendation to either,
conditionally or unconditionally, accept or reject the proposal, in a report which will
be attached to the donation proposal issue. Writing the report may require meeting
austinlparker marked this conversation as resolved.
Show resolved Hide resolved
and discussing alternative technologies with different vendors in the community and
can be a lengthy process. The TC member driving the report will post updates and time
estimates to the issue.
4. The GC will consider the report and make a final decision about the donation,
and document that decision on the donation proposal issue.
5. If accepted, the contributing organization – particularly if it's a
commercial entity – must formally acknowledge via the GitHub issue that its
respective sales and marketing departments have received, understood, and
accepted the terms of the [OpenTelemetry marketing guidelines](https://github.com/open-telemetry/community/blob/main/marketing-guidelines.md).
6. Given all of the above, the GitHub issue is closed and the donation moves
forward as agreed to by the TC and GC.
54 changes: 13 additions & 41 deletions community-membership.md → guides/contributor/membership.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Community membership
# Membership, Roles, and Responsibilities

This doc outlines the various responsibilities of contributor roles in
OpenTelemetry. The OpenTelemetry project is subdivided into subprojects under
(predominantly, but not exclusively) language-focused SIGs (Special Interest
Group). Responsibilities for most roles are scoped to these subprojects (repos).
OpenTelemetry is a project by, and for, its community. This document outlines
the various roles and responsibilities of members, as well as the requirements
for achieving each role. We encourage you to consider becoming a long-term
contributor to the project, and moving up the ladder from member, all the way to
maintainer!

The OpenTelemetry [Governance Committee][] owns this document and process until
delegated. They can be reached via e-mail <[email protected]>.
## Membership Levels

| **Role** | **Responsibilities** | **Requirements** | **Defined by** |
| ---------- | ----------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
Expand All @@ -18,11 +18,13 @@ delegated. They can be reached via e-mail <[email protected]

## New contributors

New contributors should be welcomed to the community by existing members, helped
with PR workflow, and directed to relevant documentation and communication
channels.
If you're a new contributor reading this guide -- welcome! We're excited you're
here. New contributors should be welcomed and encouraged to participate in the
project. Remember, contributions aren't limited to writing code, either --
reporting bugs, writing documentation, working on the website, or being a part
of our community management are all valuable.

## Established community members
## Established contributors

Established community members are expected to demonstrate their adherence to the
principles in this document, familiarity with project organization, roles,
Expand Down Expand Up @@ -252,36 +254,6 @@ does not believe you are ready for the role, or the subproject is not in need
of additional maintainers, they may suggest an alternate role or growth areas
in order to improve your chances to become a maintainer in the future.

### Resolving technical conflicts within a SIG

From time to time, the Maintainers for a given OpenTelemetry SIG may be unable
to reach consensus on a technical issue. While it's healthy and appropriate to
make a sincere attempt to understand all points of view and consider the
tradeoffs, it's also healthy to occasionally "disagree and commit."

Within OpenTelemetry, SIG Maintainers are chosen specifically *because* they
are domain experts, so we would like to keep as much of the decision-making
authority with the SIG Maintainers rather than immediately "escalating" to the
overall OpenTelemetry-wide Technical Committee. As such, this is
OpenTelemetry's process for resolving technical issues where Maintainers cannot
reach consensus:

1. The SIG Maintainers should succinctly document the options under
consideration as a GitHub issue within the SIG's respective repo (note that it
is *not* required to document the complete framing and pros/cons – just the
actual go-forward options themselves).
2. Each SIG Maintainer must formally vote for their choice by commenting on
that issue.
3. The option receiving the most votes wins.
4. If the vote is a tie, the OpenTelemetry TC should be brought into the
discussion, and the TC itself gets a (single) tiebreaking vote.

While inevitably these sorts of decisions will be disappointing for somebody,
it's incredibly important for the project to maintain velocity and recognize
that we are all coming to these sorts of technical issues with the best of
intentions and remain aligned about the overall goals of the OpenTelemetry
project.

## Emeritus Maintainer/Approver/Triager

For any healthy open source project, it is inevitable that contributors may move
Expand Down
Loading