Skip to content

Commit 73a0ebb

Browse files
committed
chore: add issue templates and rework PR template
1 parent 294c0a0 commit 73a0ebb

4 files changed

Lines changed: 275 additions & 59 deletions

File tree

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
name: 🐛 Bug Report
2+
description: Something in DevTools isn't behaving the way it should.
3+
title: "[🐛 Bug]: <title>"
4+
labels: [Bug 🐛, Needs Triaging ⏳]
5+
body:
6+
7+
- type: markdown
8+
attributes:
9+
value: |
10+
DevTools sits between your test framework, a browser, and our dashboard, so a good report tells us where in that chain things broke. The more of the setup you share, the faster we can reproduce it.
11+
12+
- type: dropdown
13+
id: framework
14+
attributes:
15+
label: Test framework
16+
description: Which adapter are you running DevTools through?
17+
options:
18+
- WebdriverIO (@wdio/devtools-service)
19+
- Nightwatch (@wdio/nightwatch-devtools)
20+
- Selenium WebDriver (@wdio/selenium-devtools)
21+
validations:
22+
required: true
23+
24+
- type: dropdown
25+
id: runner
26+
attributes:
27+
label: Test runner
28+
description: For Selenium especially, the runner often matters. Pick the one you launch tests with.
29+
options:
30+
- Mocha
31+
- Jasmine
32+
- Cucumber
33+
- Jest
34+
- Vitest
35+
- Not applicable / Other
36+
validations:
37+
required: false
38+
39+
- type: input
40+
id: devtools-version
41+
attributes:
42+
label: DevTools package version
43+
description: The version of the adapter package above (check your package.json or lockfile).
44+
placeholder: e.g. 0.4.2
45+
validations:
46+
required: true
47+
48+
- type: input
49+
id: node-version
50+
attributes:
51+
label: Node.js version
52+
description: Output of `node --version`.
53+
placeholder: e.g. 20.11.0
54+
validations:
55+
required: true
56+
57+
- type: input
58+
id: browser
59+
attributes:
60+
label: Browser under test
61+
description: The browser (and version) your tests drive — DevTools capture depends on it.
62+
placeholder: e.g. Chrome 126
63+
validations:
64+
required: false
65+
66+
- type: dropdown
67+
id: surface
68+
attributes:
69+
label: Where does the bug show up?
70+
description: Pick the part of DevTools where you notice the problem.
71+
multiple: true
72+
options:
73+
- Dashboard UI (rendering, controls, rerun/stop)
74+
- Captured data (network, console, screencast, trace)
75+
- Backend / server (connection, websocket, crashes)
76+
- Test launch / lifecycle (hooks, session, capabilities)
77+
- Not sure
78+
validations:
79+
required: false
80+
81+
- type: textarea
82+
id: what-happened
83+
attributes:
84+
label: What went wrong?
85+
description: Walk us through what you did and what DevTools actually did in response.
86+
placeholder: |
87+
e.g. "I clicked the rerun button on a single Mocha test. The sidebar cleared all
88+
other tests instead of keeping them, and the browser opened a second window."
89+
validations:
90+
required: true
91+
92+
- type: textarea
93+
id: what-is-expected
94+
attributes:
95+
label: What did you expect instead?
96+
validations:
97+
required: false
98+
99+
- type: textarea
100+
id: reproducible-example
101+
attributes:
102+
label: Steps to reproduce
103+
description: |
104+
We can only fix what we can reproduce. Share the smallest setup that triggers the bug —
105+
a link to a repo or [gist](https://gist.github.com/) is ideal, otherwise paste your
106+
DevTools config, the relevant spec, and the command you run.
107+
placeholder: |
108+
1. Config (wdio.conf / nightwatch.conf / selenium setup):
109+
```js
110+
...
111+
```
112+
2. Spec:
113+
```js
114+
...
115+
```
116+
3. Command: `npx wdio run wdio.conf.js`
117+
4. In the dashboard, do: ...
118+
validations:
119+
required: true
120+
121+
- type: textarea
122+
id: logs
123+
attributes:
124+
label: Logs
125+
description: Terminal output, browser console errors, or the DevTools server log — whatever's relevant.
126+
render: shell
127+
validations:
128+
required: false
129+
130+
- type: checkboxes
131+
attributes:
132+
label: Before you submit
133+
options:
134+
- label: I searched existing issues and didn't find a duplicate
135+
required: true
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: 📖 Documentation
2+
description: Report docs that are missing, wrong, or hard to follow.
3+
title: "[📖 Docs]: <title>"
4+
labels: [Docs 📖, Needs Triaging ⏳]
5+
body:
6+
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Our docs live alongside the code — the root README and a README per package under `packages/`. Small fixes are very welcome as a direct pull request; use this form when you'd rather flag it for us.
11+
12+
- type: dropdown
13+
id: type
14+
attributes:
15+
label: What's the issue with the docs?
16+
multiple: true
17+
options:
18+
- Missing — something isn't documented at all
19+
- Wrong / outdated — doesn't match how DevTools behaves
20+
- Unclear — technically correct but hard to follow
21+
- Typo or formatting
22+
- Other
23+
validations:
24+
required: true
25+
26+
- type: input
27+
id: location
28+
attributes:
29+
label: Which doc?
30+
description: Link or path to the page, README, or section this is about.
31+
placeholder: e.g. packages/selenium-devtools/README.md — "Setup" section
32+
validations:
33+
required: false
34+
35+
- type: textarea
36+
id: report
37+
attributes:
38+
label: What should change?
39+
description: Describe what's confusing or missing, and what you expected the docs to tell you.
40+
validations:
41+
required: true
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: 💡 Feature request
2+
description: Propose a new capability or improvement for DevTools.
3+
title: "[💡 Feature]: <title>"
4+
labels: [Idea 💡, Needs Triaging ⏳]
5+
body:
6+
7+
- type: markdown
8+
attributes:
9+
value: |
10+
DevTools aims to give the same debugging experience across WebdriverIO, Nightwatch, and Selenium. Ideas that work for all three (or clearly belong to one) are the easiest for us to plan — tell us what you're trying to do and we'll figure out where it fits.
11+
12+
- type: textarea
13+
id: problem
14+
attributes:
15+
label: What problem are you trying to solve?
16+
description: Describe the workflow or pain point behind the request, not just the feature.
17+
placeholder: |
18+
e.g. "When a test fails I can see the network calls, but I can't tell which one
19+
the failing assertion was waiting on, so I jump back to the terminal to correlate timestamps."
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: solution
25+
attributes:
26+
label: What would you like DevTools to do?
27+
description: How should this work from your point of view?
28+
validations:
29+
required: true
30+
31+
- type: dropdown
32+
id: scope
33+
attributes:
34+
label: Which part of DevTools would this touch?
35+
description: Best guess is fine — it helps us route the idea.
36+
multiple: true
37+
options:
38+
- Dashboard UI
39+
- Capture / reporting core
40+
- WebdriverIO adapter
41+
- Nightwatch adapter
42+
- Selenium adapter
43+
- Backend / server
44+
- Not sure
45+
validations:
46+
required: false
47+
48+
- type: dropdown
49+
id: frameworks
50+
attributes:
51+
label: Which frameworks should this apply to?
52+
multiple: true
53+
options:
54+
- WebdriverIO
55+
- Nightwatch
56+
- Selenium
57+
- All of them
58+
validations:
59+
required: false
60+
61+
- type: textarea
62+
id: alternatives
63+
attributes:
64+
label: Anything you've tried or considered?
65+
description: Workarounds you currently use, or alternative designs you weighed.
66+
validations:
67+
required: false
68+
69+
- type: textarea
70+
id: context
71+
attributes:
72+
label: Anything else?
73+
description: Mockups, screenshots, links, or related issues.
74+
validations:
75+
required: false

.github/pull_request_template.md

Lines changed: 24 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,35 @@
1-
<!--
2-
This template encodes the rules in CLAUDE.md and ARCHITECTURE.md.
3-
Delete sections that genuinely don't apply, but don't delete sections to avoid answering them.
4-
-->
1+
## What & why
52

6-
## What
3+
[//]: # (What does this PR change, and what problem does it solve? Link the issue it closes, if any.)
74

8-
<!-- One or two sentences. What does this PR change? -->
5+
## Type of change
96

10-
## Why
7+
[//]: # (Put an `x` in the boxes that apply.)
118

12-
<!-- The motivation. Not "what" again — the reason this change exists. Link issue if any. -->
9+
- [ ] Bugfix (non-breaking change which fixes an issue)
10+
- [ ] New feature (non-breaking change which adds functionality)
11+
- [ ] Polish (an improvement to an existing feature)
12+
- [ ] Breaking change (existing behavior changes for users)
13+
- [ ] Documentation
14+
- [ ] Internal (build, CI, dependencies, tooling)
1315

14-
## How
16+
## Packages touched
1517

16-
<!-- The approach. Anything non-obvious about the implementation. -->
18+
[//]: # (DevTools is a monorepo — checking these helps reviewers know where to look.)
1719

18-
---
20+
- [ ] `shared` (types and contracts)
21+
- [ ] `core` (framework-agnostic capture/reporting)
22+
- [ ] `service` (WebdriverIO adapter)
23+
- [ ] `nightwatch-devtools` (Nightwatch adapter)
24+
- [ ] `selenium-devtools` (Selenium adapter)
25+
- [ ] `backend` (server)
26+
- [ ] `app` (UI)
27+
- [ ] `script` (page-injected runtime)
1928

20-
## Architecture self-check
29+
## Notes for reviewers
2130

22-
> Required for every non-trivial PR. If a box is unchecked, explain why.
31+
[//]: # (Anything non-obvious: design trade-offs, alternatives you ruled out, follow-ups. If this PR touches more than one adapter, say why the shared logic doesn't live in `core`.)
2332

24-
- [ ] **No new duplication.** This PR does not add a type, constant, enum, or contract that already exists in another package. (If it consolidates one, note which item from `CLAUDE.md` §7 is being resolved.)
25-
- [ ] **No cross-adapter imports.** No code in `service`, `nightwatch-devtools`, or `selenium-devtools` imports from another adapter.
26-
- [ ] **No adapter imports in `backend` / `app`.** Neither package reaches into adapter internals.
27-
- [ ] **Typed contracts at boundaries.** Any new `fetch(...)`, `ws.send(...)`, or HTTP route has a typed request/response shape in `shared` (or in `service` types if `shared` doesn't exist yet, with a TODO to move).
28-
- [ ] **No `if (framework === '...')` outside an adapter.** Framework branching uses a typed `FrameworkId`.
29-
- [ ] **No new `any` at package boundaries.** Internal `any` is acceptable only at a documented framework-edge with a one-line comment.
33+
## Screenshots / recordings
3034

31-
### Multi-adapter changes
32-
33-
- [ ] This PR touches **more than one** adapter package.
34-
35-
> If checked: **why isn't this in `core`?** Answer here:
36-
>
37-
> _<your answer>_
38-
39-
---
40-
41-
## Debt scoreboard
42-
43-
> List the `CLAUDE.md` §7 debt items this PR resolves, partially resolves, or extends. Delete this section only if the PR genuinely affects no debt items.
44-
45-
- Resolved: _<item, or "none">_
46-
- Partially resolved: _<item, or "none">_
47-
- New debt introduced: _<item, or "none — and explain why if any>_
48-
49-
If new debt is introduced, it must be added to `CLAUDE.md` §7 in this PR.
50-
51-
---
52-
53-
## Testing
54-
55-
- [ ] Unit tests for new logic in `shared` / `core` (required per `CLAUDE.md` §4).
56-
- [ ] Regression test for any bug fix (required per `CLAUDE.md` §4).
57-
- [ ] `pnpm build` passes.
58-
- [ ] `pnpm test` passes.
59-
- [ ] `pnpm lint` passes.
60-
- [ ] For UI/runtime changes: verified in `example/` (or `example` for the framework I changed).
61-
62-
If any required item is skipped, say so here with the reason:
63-
64-
_<your note, or "n/a">_
65-
66-
---
67-
68-
## Screenshots / recordings (UI changes only)
69-
70-
<!-- Drop them in here. -->
35+
[//]: # (Required for UI changes — before/after images or a short clip.)

0 commit comments

Comments
 (0)