Skip to content

Commit 1c02da7

Browse files
authored
[docs] Contributing updates (open-telemetry#5856)
1 parent 60b7d9b commit 1c02da7

File tree

1 file changed

+39
-29
lines changed

1 file changed

+39
-29
lines changed

CONTRIBUTING.md

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ for a summary description of past meetings. To request edit access, join the
1010
meeting or get in touch on
1111
[Slack](https://cloud-native.slack.com/archives/C01N3BC2W7Q).
1212

13-
Even though, anybody can contribute, there are benefits of being a member of our
14-
community. See to the [community membership
13+
Anyone may contribute but there are benefits of being a member of our community.
14+
See the [community membership
1515
document](https://github.com/open-telemetry/community/blob/main/community-membership.md)
1616
on how to become a
1717
[**Member**](https://github.com/open-telemetry/community/blob/main/community-membership.md#member),
1818
[**Approver**](https://github.com/open-telemetry/community/blob/main/community-membership.md#approver)
1919
and
2020
[**Maintainer**](https://github.com/open-telemetry/community/blob/main/community-membership.md#maintainer).
2121

22-
## Find a Buddy and Get Started Quickly
22+
## Find a buddy and get started quickly
2323

2424
If you are looking for someone to help you find a starting point and be a
2525
resource for your first contribution, join our Slack channel and find a buddy!
@@ -34,17 +34,24 @@ resource for your first contribution, join our Slack channel and find a buddy!
3434

3535
Your OpenTelemetry buddy is your resource to talk to directly on all aspects of
3636
contributing to OpenTelemetry: providing context, reviewing PRs, and helping
37-
those get merged. Buddies will not be available 24/7, but is committed to
38-
responding during their normal contribution hours.
37+
those get merged. Buddies will not be available 24/7, but are committed to
38+
responding during their normal working hours.
3939

4040
## Development Environment
4141

42-
You can contribute to this project from a Windows, macOS or Linux machine.
42+
You can contribute to this project from a Windows, macOS, or Linux machine.
4343

4444
On all platforms, the minimum requirements are:
4545

46-
* Git client and command line tools.
47-
* .NET 9.0
46+
* Git client and command line tools
47+
48+
* [.NET SDK (latest stable version)](https://dotnet.microsoft.com/download)
49+
50+
> [!NOTE]
51+
> At times a pre-release version of the .NET SDK may be required to build code
52+
in this repository. Check
53+
[global.json](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/global.json)
54+
to verify the current required version.
4855

4956
### Linux or MacOS
5057

@@ -59,7 +66,7 @@ of Windows.
5966
* Visual Studio 2022+ or Visual Studio Code
6067
* .NET Framework 4.6.2+
6168

62-
### Public API Validation
69+
## Public API validation
6370

6471
It is critical to **NOT** make breaking changes to public APIs which have been
6572
released in stable builds. We also strive to keep a minimal public API surface.
@@ -91,9 +98,9 @@ to validate public APIs.
9198
[Common.prod.props](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/build/Common.prod.props)
9299
(please do not check in this change).
93100

94-
#### Working with Microsoft.CodeAnalysis.PublicApiAnalyzers
101+
### Working with Microsoft.CodeAnalysis.PublicApiAnalyzers
95102

96-
##### Update public API files when writing code
103+
#### Update public API files when writing code
97104

98105
[IntelliSense](https://docs.microsoft.com/visualstudio/ide/using-intellisense)
99106
will [suggest
@@ -116,7 +123,7 @@ do this by:
116123
while performing stable releases. If you need help reach out to an approver or
117124
maintainer on Slack or open a draft PR.
118125

119-
##### Enable public API validation in new projects
126+
#### Enable public API validation in new projects
120127

121128
1. If you are **NOT** using experimental APIs:
122129
* If your API is the same across all target frameworks:
@@ -144,12 +151,12 @@ do this by:
144151

145152
## Pull Requests
146153

147-
### How to Send Pull Requests
154+
### How to create pull requests
148155

149156
Everyone is welcome to contribute code to `opentelemetry-dotnet` via GitHub pull
150157
requests (PRs).
151158

152-
To create a new PR, fork the project in GitHub and clone the upstream repo:
159+
To create a new PR, fork the project on GitHub and clone the upstream repo:
153160

154161
```sh
155162
git clone https://github.com/open-telemetry/opentelemetry-dotnet.git
@@ -180,7 +187,7 @@ If you made changes to the Markdown documents (`*.md` files), install the latest
180187
markdownlint .
181188
```
182189

183-
Check out a new branch, make modifications and push the branch to your fork:
190+
Check out a new branch, make modifications, and push the branch to your fork:
184191

185192
```sh
186193
$ git checkout -b feature
@@ -191,7 +198,7 @@ $ git push fork feature
191198

192199
Open a pull request against the main `opentelemetry-dotnet` repo.
193200

194-
### How to Receive Comments
201+
#### Tips and best practices for pull requests
195202

196203
* If the PR is not ready for review, please mark it as
197204
[`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/).
@@ -204,26 +211,29 @@ Open a pull request against the main `opentelemetry-dotnet` repo.
204211
* Include benchmarks (before/after) in the summary, for contributions that are
205212
performance enhancements.
206213

207-
### How to Get PRs Merged
214+
### How to get pull requests merged
208215

209216
A PR is considered to be **ready to merge** when:
210217

211218
* It has received approval from
212219
[Approvers](https://github.com/open-telemetry/community/blob/main/community-membership.md#approver).
213220
/
214221
[Maintainers](https://github.com/open-telemetry/community/blob/main/community-membership.md#maintainer).
215-
* Major feedbacks are resolved.
222+
* Major feedback/comments are resolved.
216223
* It has been open for review for at least one working day. This gives people
217224
reasonable time to review.
218-
* Trivial change (typo, cosmetic, doc, etc.) doesn't have to wait for one day.
219-
* Urgent fix can take exception as long as it has been actively communicated.
225+
* Trivial change (typo, cosmetic, doc, etc.) doesn't have to wait for one day.
226+
* Urgent fix can take exception as long as it has been actively communicated.
220227

221-
Any Maintainer can merge the PR once it is **ready to merge**. Note, that some
222-
PRs may not be merged immediately if the repo is in the process of a release and
223-
the maintainers decided to defer the PR to the next release train.
228+
Any maintainer can merge PRs once they are **ready to merge** however
229+
maintainers might decide to wait on merging changes until there are more
230+
approvals and/or dicussion, or based on other factors such as release timing and
231+
risk to users. For example if a stable release is planned and a new change is
232+
introduced adding public API(s) or behavioral changes it might be held until the
233+
next alpha/beta release.
224234

225-
If a PR has been stuck (e.g. there are lots of debates and people couldn't agree
226-
on each other), the owner should try to get people aligned by:
235+
If a PR has become stuck (e.g. there is a lot of debate and people couldn't
236+
agree on the direction), the owner should try to get people aligned by:
227237

228238
* Consolidating the perspectives and putting a summary in the PR. It is
229239
recommended to add a link into the PR description, which points to a comment
@@ -238,15 +248,15 @@ on each other), the owner should try to get people aligned by:
238248
the owner should bring it to the OpenTelemetry .NET SIG
239249
[meeting](README.md#contributing).
240250

241-
## Design Choices
251+
## Design choices
242252

243253
As with other OpenTelemetry clients, opentelemetry-dotnet follows the
244254
[opentelemetry-specification](https://github.com/open-telemetry/opentelemetry-specification).
245255

246256
It's especially valuable to read through the [library
247257
guidelines](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/library-guidelines.md).
248258

249-
### Focus on Capabilities, Not Structure Compliance
259+
### Focus on capabilities not structural compliance
250260

251261
OpenTelemetry is an evolving specification, one where the desires and use cases
252262
are clear, but the method to satisfy those uses cases are not.
@@ -260,10 +270,10 @@ than conform to specific API names or argument patterns in the spec.
260270
For a deeper discussion, see [this spec
261271
issue](https://github.com/open-telemetry/opentelemetry-specification/issues/165).
262272

263-
## Style Guide
273+
## Style guide
264274

265275
This project includes a [`.editorconfig`](./.editorconfig) file which is
266-
supported by all the IDEs/editor mentioned above. It works with the IDE/editor
276+
supported by all the IDEs/editors mentioned above. It works with the IDE/editor
267277
only and does not affect the actual build of the project.
268278

269279
This repository also includes StyleCop ruleset files under the `./build` folder.

0 commit comments

Comments
 (0)