You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* update pr guidelines section
more closely resembles otel-js repo
* add development quickstart
* add more detail for general guidance
* add tools and dev header section
* update note about changelog
* update contributing toc
* update based on pr feedback
* clarify npm test, add detail for changelog
---------
Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>
Reporting bugs is an important contribution. Please make sure to include:
@@ -71,18 +88,44 @@ Remember to always work in a branch of your local copy, as you might otherwise h
71
88
72
89
Please also see [GitHub workflow](https://github.com/open-telemetry/community/blob/main/CONTRIBUTING.md#github-workflow) section of general project contributing guide.
73
90
74
-
### Running the tests
91
+
## Development
92
+
93
+
### Tools used
94
+
95
+
-[NPM](https://npmjs.com)
96
+
-[TypeScript](https://www.typescriptlang.org/)
97
+
-[lerna](https://github.com/lerna/lerna) to manage dependencies, compilations, and links between packages. Most lerna commands should be run by calling the provided npm scripts.
Refer to the core repository for [supported runtimes](https://github.com/open-telemetry/opentelemetry-js#supported-runtimes).
103
+
Refer to the root-level [package.json](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/package.json) for shared dev dependency versions, and the package-level package.json for package-specific versions if different or not included in the shared root.
104
+
105
+
### General guidance
75
106
76
107
The `opentelemetry-js-contrib` project is written in TypeScript.
77
108
78
-
-`npm install` to install dependencies.
109
+
As a general rule, installing and then compiling from the root directory should always be done first before anything else.
110
+
After making changes to a specific package, compile again from the specific package directory you are working in.
111
+
Some tests depend on other packages to be installed, so these steps are also required for running tests.
-`npm run compile` compiles the code, checking for type errors.
80
-
-`npm test` tests code the same way that our CI will test it.
81
-
-`npm run lint:fix` lint (and maybe fix) any changes.
115
+
-`npm test` runs most unit tests, though some packages require other dependencies so are only run in CI or with a separate command in the package's `package.json` file.
116
+
-`npm run lint:fix` lint any changes and fix if needed.
117
+
118
+
Each of these commands can also be run in individual packages, as long as the initial install and compile are done first in the root directory.
119
+
120
+
### CHANGELOG
121
+
122
+
The conventional commit type (in PR title) is very important to automatically bump versions on release. For instance:
82
123
83
-
### Generating CHANGELOG documentation
124
+
- any type + `!` will bump major version (or minor on pre-release)
125
+
-`feat` will bump minor
126
+
-`fix` will bump patch
84
127
85
-
-`npm run changelog` to generate CHANGELOG documentation in your terminal (see [RELEASING.md](RELEASING.md) for more details).
128
+
There is no need to update the CHANGELOG in a PR because it will be updated as part of the release process (see [RELEASING.md](RELEASING.md) for more details).
86
129
87
130
### Benchmarks
88
131
@@ -154,9 +197,25 @@ They may not work and there are no guarantees for fixes or new features.
154
197
Their source files may be deleted from the repository.
155
198
Any packages released from their source will be marked as deprecated in NPM.
156
199
157
-
## Pull Request Merge Requirements
200
+
## Pull Request Merge Guidelines
201
+
202
+
Pull requests MAY be merged by an approver OR a maintainer provided they meet all the following [General Merge Requirements](#general-merge-requirements).
203
+
All requirements are at the discretion of the maintainers.
204
+
Maintainers MAY merge pull requests which have not strictly met these requirements.
205
+
Maintainers MAY close, block, or put on hold pull requests even if they have strictly met these requirements.
206
+
207
+
It is generally expected that a maintainer ([@open-telemetry/javascript-maintainers](https://github.com/orgs/open-telemetry/teams/javascript-maintainers)) should review and merge major changes.
208
+
Some examples include, but are not limited to:
209
+
210
+
- Breaking changes
211
+
- New modules
212
+
- Changes which affect runtime support
213
+
214
+
If a PR has not been interacted with by a reviewer within one week, please ping the component
215
+
owners as listed in [.github/component_owners.yml](.github/component_owners.yml), if component owners are unresponsive
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.
0 commit comments