Skip to content

Commit 4378303

Browse files
authored
New bug form and triage workflow (#3058)
1 parent 0727ed7 commit 4378303

File tree

4 files changed

+146
-25
lines changed

4 files changed

+146
-25
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Bug Report
2+
description: File a bug report
3+
labels: ["bug", "triage"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to fill out this bug report!
9+
Please make sure to fill out the entire form below,
10+
providing as much context as you can in order to help us
11+
triage and track down your bug as quickly as possible.
12+
13+
Before filing a bug, please be sure you have searched through
14+
[existing bugs](https://github.com/open-telemetry/opentelemetry-js/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Abug)
15+
to see if your bug is already addressed.
16+
17+
If your bug is related to an instrumentation or plugin in [opentelemetry-js-contrib](https://github.com/open-telemetry/opentelemetry-js-contrib)
18+
please be sure to file it there.
19+
- type: textarea
20+
attributes:
21+
label: What happened?
22+
description: Please provide as much detail as you reasonably can.
23+
value: |
24+
## Steps to Reproduce
25+
26+
## Expected Result
27+
28+
## Actual Result
29+
30+
## Additional Details
31+
32+
validations:
33+
required: true
34+
- type: textarea
35+
attributes:
36+
label: OpenTelemetry Setup Code
37+
description: Please provide the code you use to set up OpenTelemetry
38+
placeholder: | # This comes from our README.md
39+
// tracing.js
40+
41+
'use strict'
42+
43+
const process = require('process');
44+
const opentelemetry = require('@opentelemetry/sdk-node');
45+
const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');
46+
const { ConsoleSpanExporter } = require('@opentelemetry/sdk-trace-base');
47+
const { Resource } = require('@opentelemetry/resources');
48+
const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
49+
50+
// configure the SDK to export telemetry data to the console
51+
// enable all auto-instrumentations from the meta package
52+
const traceExporter = new ConsoleSpanExporter();
53+
const sdk = new opentelemetry.NodeSDK({
54+
resource: new Resource({
55+
[SemanticResourceAttributes.SERVICE_NAME]: 'my-service',
56+
}),
57+
traceExporter,
58+
instrumentations: [getNodeAutoInstrumentations()]
59+
});
60+
61+
// initialize the SDK and register with the OpenTelemetry API
62+
// this enables the API to record telemetry
63+
sdk.start()
64+
.then(() => console.log('Tracing initialized'))
65+
.catch((error) => console.log('Error initializing tracing', error));
66+
67+
// gracefully shut down the SDK on process exit
68+
process.on('SIGTERM', () => {
69+
sdk.shutdown()
70+
.then(() => console.log('Tracing terminated'))
71+
.catch((error) => console.log('Error terminating tracing', error))
72+
.finally(() => process.exit(0));
73+
});
74+
render: "JavaScript"
75+
- type: textarea
76+
attributes:
77+
label: package.json
78+
description: If possible, please provide your full package.json. If not, please provide at least your list of dependencies and their versions, especially OpenTelemetry versions.
79+
render: "JSON"
80+
placeholder: |
81+
{
82+
"name": "my-app",
83+
"scripts": {
84+
"start": "node -r tracing.js app.js"
85+
},
86+
"dependencies": {
87+
"@opentelemetry/api": "^1.2.0",
88+
"@opentelemetry/sdk-trace-base": "~1.3.1",
89+
...
90+
}
91+
}
92+
- type: textarea
93+
attributes:
94+
label: Relevant log output
95+
description: |
96+
Please copy and paste any relevant log output.
97+
render: shell

maintenance/bug_triage.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# OpenTelemetry Bug Triage
2+
3+
This procedure describes the steps project maintainers and approvers should take to triage a bug report.
4+
5+
Bugs should be created using the [Bug Report](https://github.com/open-telemetry/opentelemetry-js/issues/new?template=bug_report.yaml) issue template.
6+
This template automatically applies the `bug` and `triage` labels.
7+
8+
## Gather Required Information
9+
10+
The first step is to ensure the bug report is unique and complete.
11+
If the bug report is not unique, leave a comment with a link to the existing bug and close the issue.
12+
If the bug report is not complete, leave a comment requesting additional details and apply the `information-requested` label.
13+
When the user provides additional details, remove the `information-requested` label and repeat this step.
14+
15+
## Categorize
16+
17+
Once a bug report is complete, we can determine if it is truly a bug or not.
18+
A bug is defined as code that does not work the way it was intended to work when written.
19+
A change required by specification may not be a bug if the code is working as intended.
20+
If a bug report is determined not to be a bug, remove the `bug` label and apply the appropriate labels as follows:
21+
22+
- `documentation` feature is working as intended but documentation is incorrect or incomplete
23+
- `feature-request` new feature request which is not required by the specification, but is allowable by specification rules
24+
- `spec-feature` change required by the specification which adds a new feature or extends an existing feature with new functionality
25+
- `spec-inconsistency` an existing feature incorrectly or incompletely implements the specification - may or may not also be a bug
26+
27+
## Prioritize
28+
29+
For bugs and specification required changes, apply a priority label as follows.
30+
Each bug should have only a single priority label which is the highest priority that applies.
31+
For example, a bug which satisfies the conditions for both `p2` and `p3` labels should only receive the `p2` label.
32+
33+
- `p1` bugs which cause problems in end-user applications such as crashes, data inconsistencies, or memory leaks which grow unbounded
34+
- `p2` bugs and specification inconsistencies which cause telemetry to be incorrectly or incompletely reported
35+
- `p3` bugs which cause problems in end-user applications not related to correctness such as performance issues or high memory use
36+
- `p4` bugs and specification inconsistencies which do not fall into any of the above categories
37+
38+
## Schedule
39+
40+
The final step is to determine a reasonable timeline for a bug to be fixed.
41+
`p1` and `p2` issues should be fixed as quickly as possible.
42+
These bugs should be either immediately assigned to the appropriate person, or added to the agenda for the next SIG meeting where they will be assigned.
43+
`p3` and `p4` issues may be addressed less urgently than `p1` and `p2` issues.
44+
If they are not urgent the `up-for-grabs`, `good-first-issue`, or other similar labels may be applied as appropriate.
45+
46+
## Triage Complete
47+
48+
The final step is to remove the `triage` label.
49+
This indicates that all above steps have been taken and an issue is ready to be worked on.
File renamed without changes.

0 commit comments

Comments
 (0)