Skip to content

Commit 28340cf

Browse files
tschmclaude
andcommitted
docs: add issue/PR templates and commit conventions
- Add bug report and feature request issue templates (structured YAML forms) - Add config.yml to disable blank issues and redirect to Discussions - Add pull_request_template.md with testing and contributor checklists - Document Conventional Commits conventions in CONTRIBUTING.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2bd96f3 commit 28340cf

File tree

5 files changed

+172
-0
lines changed

5 files changed

+172
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behaviour
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to report a bug. Please fill out the sections below.
9+
10+
- type: textarea
11+
id: description
12+
attributes:
13+
label: Description
14+
description: A clear and concise description of what the bug is.
15+
placeholder: What happened?
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: steps
21+
attributes:
22+
label: Steps to reproduce
23+
description: Minimal steps to reproduce the behaviour.
24+
placeholder: |
25+
1. Run `make ...`
26+
2. See error
27+
validations:
28+
required: true
29+
30+
- type: textarea
31+
id: expected
32+
attributes:
33+
label: Expected behaviour
34+
description: What did you expect to happen?
35+
validations:
36+
required: true
37+
38+
- type: textarea
39+
id: environment
40+
attributes:
41+
label: Environment
42+
description: |
43+
Relevant versions and system info. Run `make info` if available.
44+
placeholder: |
45+
- OS: macOS 14 / Ubuntu 24.04 / Windows 11
46+
- Python: 3.13.x
47+
- rhiza version:
48+
validations:
49+
required: false
50+
51+
- type: textarea
52+
id: context
53+
attributes:
54+
label: Additional context
55+
description: Logs, screenshots, or anything else that may be helpful.
56+
validations:
57+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Question / Discussion
4+
url: https://github.com/jqr-labs/rhiza/discussions
5+
about: Ask questions or discuss ideas in GitHub Discussions rather than opening an issue.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for proposing a feature. Please align with the team before investing significant effort.
9+
10+
- type: textarea
11+
id: problem
12+
attributes:
13+
label: Problem / motivation
14+
description: What problem does this solve? Why is it valuable?
15+
placeholder: As a contributor I find it hard to ... because ...
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: solution
21+
attributes:
22+
label: Proposed solution
23+
description: Describe the solution you have in mind.
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: alternatives
29+
attributes:
30+
label: Alternatives considered
31+
description: Other approaches you have considered and why you ruled them out.
32+
validations:
33+
required: false
34+
35+
- type: textarea
36+
id: context
37+
attributes:
38+
label: Additional context
39+
description: Links, mockups, prior art, or anything else that may be helpful.
40+
validations:
41+
required: false

.github/pull_request_template.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
## Summary
2+
3+
<!-- One or two sentences describing what this PR does and why. -->
4+
5+
Closes #<!-- issue number -->
6+
7+
## Changes
8+
9+
<!-- Bullet list of what changed. -->
10+
11+
-
12+
13+
## Testing
14+
15+
- [ ] `make test` passes locally
16+
- [ ] `make fmt` has been run
17+
- [ ] New tests added (or explain why not needed)
18+
19+
## Checklist
20+
21+
- [ ] Commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/) format
22+
- [ ] Documentation updated if behaviour changed
23+
- [ ] `make deptry` passes (no unused or missing dependencies)

CONTRIBUTING.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,52 @@ following:
5555
- Browse the open issues,
5656
and look for the issues tagged "help wanted".
5757

58+
## Commit conventions
59+
60+
We use [Conventional Commits](https://www.conventionalcommits.org/). Every commit message must have a
61+
structured prefix so tooling can generate changelogs automatically.
62+
63+
### Format
64+
65+
```
66+
<type>(<scope>): <short summary>
67+
```
68+
69+
`scope` is optional but encouraged when the change is limited to a specific area.
70+
71+
### Types
72+
73+
| Type | When to use |
74+
|------------|--------------------------------------------------|
75+
| `feat` | New feature or capability |
76+
| `fix` | Bug fix |
77+
| `docs` | Documentation only |
78+
| `refactor` | Code change that is neither a fix nor a feature |
79+
| `test` | Adding or updating tests |
80+
| `ci` | CI / build system changes |
81+
| `chore` | Maintenance tasks (deps, tooling, config) |
82+
| `perf` | Performance improvement |
83+
| `security` | Security fix or hardening |
84+
85+
### Examples
86+
87+
```
88+
feat(templates): add devcontainer template for Python 3.13
89+
fix: resolve path issue in bootstrap script
90+
docs: update CONTRIBUTING with commit conventions
91+
ci: cache uv dependencies in GitHub Actions
92+
```
93+
94+
### Breaking changes
95+
96+
Append `!` after the type/scope and add a `BREAKING CHANGE:` footer:
97+
98+
```
99+
feat!: rename make target from `book` to `docs`
100+
101+
BREAKING CHANGE: `make book` no longer exists; use `make docs`.
102+
```
103+
58104
## Code style
59105

60106
We use ruff to enforce our Python coding style.

0 commit comments

Comments
 (0)