Skip to content

Commit 453feb3

Browse files
committed
docs: add issue/PR templates, auto-labeler, update CONTRIBUTING
1 parent 2261c71 commit 453feb3

6 files changed

Lines changed: 154 additions & 15 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Bug Report
2+
description: Something isn't working
3+
labels: ["bug"]
4+
body:
5+
- type: input
6+
id: openboot_version
7+
attributes:
8+
label: OpenBoot version
9+
description: Run `openboot version`
10+
placeholder: "0.51.0"
11+
validations:
12+
required: true
13+
14+
- type: input
15+
id: macos_version
16+
attributes:
17+
label: macOS version
18+
description: Run `sw_vers -productVersion`
19+
placeholder: "15.3.2"
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: description
25+
attributes:
26+
label: What happened?
27+
description: Describe the bug clearly.
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: steps
33+
attributes:
34+
label: Steps to reproduce
35+
placeholder: |
36+
1. Run `openboot install ...`
37+
2. ...
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: output
43+
attributes:
44+
label: Full terminal output
45+
description: Paste the complete output — don't trim it.
46+
render: shell
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: expected
52+
attributes:
53+
label: Expected behavior
54+
validations:
55+
required: false
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Feature Request
2+
description: Suggest an idea or improvement
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: What problem does this solve?
9+
description: Describe the use case or pain point.
10+
validations:
11+
required: true
12+
13+
- type: textarea
14+
id: solution
15+
attributes:
16+
label: Proposed solution
17+
description: What would you like to see?
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: alternatives
23+
attributes:
24+
label: Alternatives considered
25+
description: Any other approaches you've thought about?
26+
validations:
27+
required: false

.github/labeler.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
catalog:
2+
- internal/config/data/packages.yaml
3+
4+
brew:
5+
- internal/brew/**
6+
7+
installer:
8+
- internal/installer/**
9+
10+
ci:
11+
- .github/workflows/**
12+
13+
docs:
14+
- "*.md"
15+
- docs/**
16+
17+
tests:
18+
- "**/*_test.go"
19+
20+
snapshot:
21+
- internal/snapshot/**
22+
23+
ui:
24+
- internal/ui/**

.github/pull_request_template.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## What does this PR do?
2+
3+
<!-- One sentence summary -->
4+
5+
## Why?
6+
7+
<!-- What problem does it solve, or what issue does it close? -->
8+
<!-- Use "Fixes #123" to auto-close an issue -->
9+
10+
## Testing
11+
12+
<!-- How did you test this? -->
13+
- [ ] `go vet ./...` passes
14+
- [ ] Relevant tests added or updated
15+
- [ ] Tested locally (`./openboot --dry-run` or similar)
16+
17+
## Notes for reviewer
18+
19+
<!-- Anything that needs extra context or attention? -->

.github/workflows/labeler.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Label PRs
2+
3+
on:
4+
pull_request_target:
5+
types: [opened, synchronize]
6+
7+
jobs:
8+
label:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
pull-requests: write
13+
steps:
14+
- uses: actions/labeler@v5
15+
with:
16+
repo-token: ${{ secrets.GITHUB_TOKEN }}

CONTRIBUTING.md

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
# Contributing
22

3-
PRs welcome. This is a solo project, so I review everything personally.
3+
Contributions are welcome. @fullstackjam maintains the project and reviews all PRs — he has final say on what gets merged, but good ideas land fast.
44

55
## Quick Start
66

7-
Fork, branch, code, test, PR:
8-
97
```bash
108
git clone https://github.com/YOUR_USERNAME/openboot.git
119
cd openboot
1210
git checkout -b fix-something
1311

14-
# Make changes
12+
# Build
1513
go build -o openboot ./cmd/openboot
1614
./openboot --dry-run
1715

@@ -23,15 +21,15 @@ git commit -m "fix: the thing"
2321
git push origin fix-something
2422
```
2523

26-
Then open a PR.
24+
Then open a PR — use the template, it's short.
2725

28-
## Easy First Contributions
26+
## Good First Contributions
2927

30-
Just:
3128
- Add a package to `internal/config/data/packages.yaml`
32-
- Fix a typo
33-
- Improve an error message
34-
- Add a test
29+
- Fix a typo or improve an error message
30+
- Add a missing test
31+
32+
See [issues labeled `good first issue`](https://github.com/openbootdotdev/openboot/issues?q=is%3Aopen+label%3A%22good+first+issue%22) for tracked tasks.
3533

3634
## Running Tests
3735

@@ -43,15 +41,15 @@ make test-all # Everything + coverage
4341

4442
## Code Expectations
4543

46-
- Standard Go style (run `go vet`)
47-
- Add tests if you add features
48-
- Conventional commits (`feat:`, `fix:`, `docs:`)
49-
- One thing per commit
44+
- Standard Go style (`go vet` must pass)
45+
- Add tests for new features
46+
- Conventional commits (`feat:`, `fix:`, `docs:`, `refactor:`)
47+
- One logical change per PR
5048

5149
## Architecture
5250

5351
See [CLAUDE.md](CLAUDE.md) for how everything fits together.
5452

5553
## Questions
5654

57-
Open a [Discussion](https://github.com/openbootdotdev/openboot/discussions). I respond within 24 hours (usually faster).
55+
Open a [Discussion](https://github.com/openbootdotdev/openboot/discussions).

0 commit comments

Comments
 (0)