Skip to content

Commit 9963552

Browse files
shossain786claude
andcommitted
chore: add contributor onboarding — issue/PR templates, roadmap, README surfacing
Lower the barrier for new contributors and make open work visible: - .github/ISSUE_TEMPLATE/ — bug report + feature request issue forms and a config that disables blank issues and links Discussions, docs, and good first issues. Forms enforce the info CONTRIBUTING.md asks for (versions, repro, philosophy fit). - .github/PULL_REQUEST_TEMPLATE.md — pre-filled with the CONTRIBUTING PR checklist (tests, coverage, no new deps, @SeleniumBootApi compatibility). - ROADMAP.md — add a post-1.0 "current focus & where help is welcome" section surfacing contribution opportunities (kept the existing phased history intact). - README.md — expand the Contributing section with good-first-issue / help-wanted / roadmap / discussions links, plus PRs-welcome and good-first -issues badges. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 5490cf4 commit 9963552

6 files changed

Lines changed: 196 additions & 1 deletion

File tree

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: "🐛 Bug report"
2+
description: Report a defect in Selenium Boot so we can reproduce and fix it.
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to file a bug! A minimal reproduction is the single most
10+
helpful thing you can provide — it usually turns a multi-day investigation into a quick fix.
11+
- type: textarea
12+
id: what-happened
13+
attributes:
14+
label: What happened?
15+
description: A clear description of the bug and what you expected instead.
16+
placeholder: "When I run tests with `parallel: methods`, the driver from thread A is reused in thread B…"
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: repro
21+
attributes:
22+
label: Steps to reproduce
23+
description: Minimal steps (ideally a tiny test class + the relevant `selenium-boot.yml`).
24+
placeholder: |
25+
1. selenium-boot.yml with `execution.parallel: methods`, `threadCount: 4`
26+
2. Two test classes extending BaseTest that call `getDriver()`
27+
3. Run `mvn test`
28+
4. See NPE / wrong session in the report
29+
validations:
30+
required: true
31+
- type: input
32+
id: sb-version
33+
attributes:
34+
label: Selenium Boot version
35+
placeholder: "3.1.1"
36+
validations:
37+
required: true
38+
- type: input
39+
id: java-version
40+
attributes:
41+
label: Java version
42+
placeholder: "17.0.10 (Temurin)"
43+
validations:
44+
required: true
45+
- type: input
46+
id: browser
47+
attributes:
48+
label: Browser + driver version
49+
placeholder: "Chrome 126 / chromedriver via Selenium Manager"
50+
validations:
51+
required: true
52+
- type: textarea
53+
id: stacktrace
54+
attributes:
55+
label: Stack trace / logs
56+
description: Paste the full stack trace if applicable. This will be rendered as code, no backticks needed.
57+
render: shell
58+
validations:
59+
required: false

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 Questions & feature discussions
4+
url: https://github.com/seleniumboot/selenium-boot/discussions
5+
about: Ask how-to questions or float an idea before opening a feature request.
6+
- name: 📖 Documentation
7+
url: https://seleniumboot.github.io/selenium-boot
8+
about: Guides, configuration reference, and recipes.
9+
- name: 🙌 Good first issues
10+
url: https://github.com/seleniumboot/selenium-boot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
11+
about: New here? These are scoped, self-contained tasks to get started.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: "✨ Feature request"
2+
description: Suggest a feature or improvement that fits the framework's philosophy.
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Selenium Boot is deliberately opinionated — **simplicity is its main feature.** Features that
10+
add significant complexity without clear user value may be declined. For open-ended ideas,
11+
please start a [Discussion](https://github.com/seleniumboot/selenium-boot/discussions) first.
12+
- type: textarea
13+
id: problem
14+
attributes:
15+
label: The problem
16+
description: Describe the problem you're solving — not just the solution. What can't you do today?
17+
placeholder: "There's no built-in way to assert on a downloaded PDF's contents, only that a file appeared."
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: proposal
22+
attributes:
23+
label: Proposed solution
24+
description: What would the API / behaviour look like? A code sketch of the ideal usage helps a lot.
25+
placeholder: |
26+
downloads().waitForFile("*.pdf").assertTextContains("Invoice #123");
27+
validations:
28+
required: true
29+
- type: dropdown
30+
id: philosophy
31+
attributes:
32+
label: Philosophy fit
33+
description: How does this fit "zero boilerplate, convention over configuration, single dependency"?
34+
options:
35+
- "Works with zero config (a sensible default)"
36+
- "Opt-in via selenium-boot.yml, off by default"
37+
- "Opt-in via annotation / method call"
38+
- "Not sure — happy to discuss"
39+
validations:
40+
required: true
41+
- type: checkboxes
42+
id: constraints
43+
attributes:
44+
label: Constraints
45+
options:
46+
- label: This can be added without a new external dependency (or I've noted why one is needed)
47+
- label: This does not break existing `@SeleniumBootApi` public APIs

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!-- Thanks for contributing to Selenium Boot! Please fill this out so reviewers have context. -->
2+
3+
## What & why
4+
5+
<!-- What does this PR change, and what problem does it solve? Link the issue it closes. -->
6+
7+
Closes #
8+
9+
## Type of change
10+
11+
- [ ] Bug fix
12+
- [ ] New feature (opt-in, aligned with the framework philosophy)
13+
- [ ] Documentation
14+
- [ ] Internal refactor / test coverage
15+
16+
## Checklist
17+
18+
<!-- From CONTRIBUTING.md — please confirm each item. -->
19+
20+
- [ ] All existing tests pass (`mvn clean verify`)
21+
- [ ] New behaviour is covered by unit tests
22+
- [ ] No new external dependencies introduced without prior discussion
23+
- [ ] Code follows existing conventions (no new frameworks, minimal abstraction)
24+
- [ ] No breaking changes to `@SeleniumBootApi` public APIs (or a major version bump is justified below)
25+
- [ ] Docs updated if user-facing behaviour changed (`docs-site/`)
26+
27+
## Notes for reviewers
28+
29+
<!-- Anything reviewers should pay special attention to, trade-offs, follow-ups, etc. -->

‎README.md‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
[![Maven Central](https://img.shields.io/maven-central/v/io.github.seleniumboot/selenium-boot)](https://central.sonatype.com/artifact/io.github.seleniumboot/selenium-boot)
66
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
7+
[![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
8+
[![Good first issues](https://img.shields.io/github/issues/seleniumboot/selenium-boot/good%20first%20issue?label=good%20first%20issues&color=7057ff)](https://github.com/seleniumboot/selenium-boot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
79

810
**[Documentation](https://seleniumboot.github.io/selenium-boot) · [Sample Project](https://github.com/seleniumboot/selenium-boot-test) · [Changelog](#project-status)**
911

@@ -677,7 +679,16 @@ Licensed under the [Apache License, Version 2.0](LICENSE).
677679

678680
## Contributing
679681

680-
See [CONTRIBUTING.md](CONTRIBUTING.md).
682+
Contributions are warmly welcome — Selenium Boot is opinionated, and contributions that align with its philosophy (zero boilerplate, convention over configuration, never hide Selenium) help the whole community.
683+
684+
**New here?** The best place to start:
685+
686+
- 🙌 [**Good first issues**](https://github.com/seleniumboot/selenium-boot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) — scoped, self-contained tasks
687+
- 🤝 [**Help wanted**](https://github.com/seleniumboot/selenium-boot/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) — larger pieces we'd love a hand with
688+
- 🗺️ [**Roadmap**](ROADMAP.md) — where the project is heading and where help fits
689+
- 💬 [**Discussions**](https://github.com/seleniumboot/selenium-boot/discussions) — questions and feature ideas
690+
691+
Then read [CONTRIBUTING.md](CONTRIBUTING.md) for dev setup, the PR checklist, and the backward-compatibility policy. Bug reports and feature requests both have [issue templates](https://github.com/seleniumboot/selenium-boot/issues/new/choose) to guide you.
681692

682693
---
683694

‎ROADMAP.md‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,44 @@ This document outlines the planned evolution of Selenium Boot from MVP to a stab
44

55
The roadmap is intentionally opinionated and incremental. Each phase focuses on delivering production value before expanding scope.
66

7+
> **Contributors, start here.** Phases 0–5 below are complete (the framework is past v1.0). The list
8+
> immediately below is where active work and **open contribution opportunities** live today. The
9+
> [issue tracker](https://github.com/seleniumboot/selenium-boot/issues) is the source of truth for what's
10+
> actionable right now — this document is the higher-level picture.
11+
12+
---
13+
14+
## Post-1.0 — current focus & where help is welcome
15+
16+
Items tagged **`good first issue`** or **`help wanted`** are open for contribution. Read
17+
[CONTRIBUTING.md](CONTRIBUTING.md), comment on the issue to claim it, then open a PR against `master`.
18+
19+
### Documentation & discoverability (current priority)
20+
21+
Most users find a framework by searching, not by browsing GitHub.
22+
23+
- **Per-page SEO descriptions** across all docs pages — *in progress*.
24+
- **"Why" pages** — Why Selenium Boot? · Why not plain Selenium? · Why not Playwright? · Why accessibility-first locators? · Why WaitEngine? `good first issue`
25+
- **Recipes section** — task-titled, search-matched guides: upload a file, download a PDF, iframes, Shadow DOM, tables, infinite scroll, OAuth/SSO, alerts, drag & drop, REST + UI. `good first issue`
26+
- **Migration guides** — from Selenium + TestNG, from WebDriverManager, from Selenide, from Serenity; plus a "coming from Playwright" bridge (familiar vs. different, **not** a replacement claim). `help wanted`
27+
- **Homepage before/after** — a visual `wait.until(...)` → `click("#login")` comparison component. `enhancement`
28+
- **SEO hygiene** — verify `sitemap.xml` generation, tighten generic page `<title>`s. `good first issue`
29+
30+
### Framework & ecosystem
31+
32+
- More built-in `WaitEngine` conditions requested by users. `help wanted`
33+
- Additional first-class browser providers (Edge, Safari) via the existing SPI. `help wanted`
34+
- **seleniumboot-mcp** — keep MCP codegen output framework-native and accessibility-first as the API evolves. (See the [MCP repo](https://github.com/seleniumboot/selenium-mcp).)
35+
36+
### Ongoing quality
37+
38+
- Grow unit-test coverage for untested code paths. `good first issue`
39+
- Keep the consumer sample project (`selenium-boot-test`) in step with new features.
40+
41+
> Don't see what you want to work on? Open a
42+
> [Discussion](https://github.com/seleniumboot/selenium-boot/discussions) — ideas that fit the
43+
> philosophy are welcome, and we'll turn agreed ones into issues.
44+
745
---
846

947
## Guiding Roadmap Principles

0 commit comments

Comments
 (0)