Skip to content

Commit d123e1f

Browse files
committed
Add comprehensive GitHub issue/PR templates and triage workflow
- Add bug_report.yml with structured form and auto-labels (bug, needs-triage) - Add feature_request.yml with structured form and auto-labels (enhancement, needs-triage) - Add documentation.yml for doc issues with auto-labels (documentation) - Add config.yml to disable blank issues and link to Discussions - Add PULL_REQUEST_TEMPLATE.md with quality checklist (ruff, mypy, pytest) - Add issue-triage.yml workflow for auto-labeling by component keywords - Update AGENTS.md with new issue templates, auto-labeling docs, and PR guidelines
1 parent 6a5c6bc commit d123e1f

7 files changed

Lines changed: 768 additions & 31 deletions

File tree

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior in abstract-validation-base
3+
title: "[Bug]: "
4+
labels: ["bug", "needs-triage"]
5+
assignees: []
6+
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for taking the time to report a bug! Please fill out the sections below to help us understand and reproduce the issue.
12+
13+
- type: checkboxes
14+
id: prerequisites
15+
attributes:
16+
label: Prerequisites
17+
description: Please confirm the following before submitting
18+
options:
19+
- label: I have searched existing issues to ensure this bug hasn't already been reported
20+
required: true
21+
- label: I am using the latest version of abstract-validation-base
22+
required: true
23+
- label: I have read the [documentation](https://github.com/Abstract-Data/abstract-validation-base#readme)
24+
required: false
25+
26+
- type: textarea
27+
id: description
28+
attributes:
29+
label: Bug Description
30+
description: A clear and concise description of what the bug is
31+
placeholder: Describe the bug...
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: reproduction
37+
attributes:
38+
label: Steps to Reproduce
39+
description: Minimal code example that reproduces the issue
40+
placeholder: |
41+
```python
42+
from abstract_validation_base import ValidationBase
43+
44+
class MyModel(ValidationBase):
45+
name: str
46+
47+
# Code that triggers the bug...
48+
```
49+
render: python
50+
validations:
51+
required: true
52+
53+
- type: textarea
54+
id: expected
55+
attributes:
56+
label: Expected Behavior
57+
description: What did you expect to happen?
58+
placeholder: I expected...
59+
validations:
60+
required: true
61+
62+
- type: textarea
63+
id: actual
64+
attributes:
65+
label: Actual Behavior
66+
description: What actually happened?
67+
placeholder: Instead, what happened was...
68+
validations:
69+
required: true
70+
71+
- type: dropdown
72+
id: component
73+
attributes:
74+
label: Affected Component
75+
description: Which part of the library is affected?
76+
multiple: true
77+
options:
78+
- ValidationBase / ProcessLog
79+
- BaseValidator / CompositeValidator
80+
- ValidationRunner (streaming)
81+
- Writers (CSV/JSON/Audit)
82+
- ValidatedRecord (SQLModel)
83+
- Rich Integration (observers/dashboard)
84+
- Events / Observer Pattern
85+
- Other / Unknown
86+
validations:
87+
required: true
88+
89+
- type: textarea
90+
id: error-output
91+
attributes:
92+
label: Error Output / Stack Trace
93+
description: If applicable, paste the full error message or stack trace
94+
placeholder: |
95+
Traceback (most recent call last):
96+
File "...", line X, in <module>
97+
...
98+
Error: ...
99+
render: shell
100+
101+
- type: dropdown
102+
id: python-version
103+
attributes:
104+
label: Python Version
105+
description: Which Python version are you using?
106+
options:
107+
- "3.12"
108+
- "3.11"
109+
- "3.10"
110+
validations:
111+
required: true
112+
113+
- type: input
114+
id: package-version
115+
attributes:
116+
label: Package Version
117+
description: "Run: python -c \"import abstract_validation_base; print(abstract_validation_base.__version__)\""
118+
placeholder: "e.g., 0.3.0a1"
119+
validations:
120+
required: true
121+
122+
- type: dropdown
123+
id: os
124+
attributes:
125+
label: Operating System
126+
options:
127+
- macOS
128+
- Linux
129+
- Windows
130+
- Other
131+
validations:
132+
required: true
133+
134+
- type: textarea
135+
id: additional
136+
attributes:
137+
label: Additional Context
138+
description: Any other context, screenshots, or information that might help
139+
placeholder: Add any other context here...
140+

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Questions & Discussions
4+
url: https://github.com/Abstract-Data/abstract-validation-base/discussions
5+
about: For questions, help, and general discussion - please use GitHub Discussions instead of opening an issue.
6+
- name: Security Vulnerabilities
7+
url: https://github.com/Abstract-Data/abstract-validation-base/security/advisories/new
8+
about: Report security vulnerabilities privately through GitHub Security Advisories.
9+
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Documentation Issue
2+
description: Report missing, incorrect, or unclear documentation
3+
title: "[Docs]: "
4+
labels: ["documentation"]
5+
assignees: []
6+
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Help us improve the documentation! Please describe what needs to be added, corrected, or clarified.
12+
13+
- type: dropdown
14+
id: issue-type
15+
attributes:
16+
label: Documentation Issue Type
17+
description: What kind of documentation issue is this?
18+
options:
19+
- Missing documentation (feature not documented)
20+
- Incorrect documentation (docs don't match behavior)
21+
- Unclear documentation (hard to understand)
22+
- Needs code example (missing or incomplete examples)
23+
- Typo or formatting issue
24+
- Outdated documentation (refers to old API/behavior)
25+
validations:
26+
required: true
27+
28+
- type: dropdown
29+
id: location
30+
attributes:
31+
label: Documentation Location
32+
description: Where is the documentation issue located?
33+
multiple: true
34+
options:
35+
- README.md
36+
- AGENTS.md (AI guidelines)
37+
- Module docstrings (base.py, validators.py, etc.)
38+
- API reference / type hints
39+
- Code comments
40+
- Other / New documentation needed
41+
validations:
42+
required: true
43+
44+
- type: input
45+
id: section
46+
attributes:
47+
label: Specific Section
48+
description: If applicable, which section or heading?
49+
placeholder: "e.g., 'Streaming Validation' or 'ValidationRunner.run()'"
50+
51+
- type: textarea
52+
id: current
53+
attributes:
54+
label: Current Documentation
55+
description: What does the current documentation say (if applicable)?
56+
placeholder: |
57+
The current docs state:
58+
> "..."
59+
60+
Or link to the section: https://github.com/...#section
61+
62+
- type: textarea
63+
id: problem
64+
attributes:
65+
label: Problem Description
66+
description: What's wrong or missing?
67+
placeholder: |
68+
The documentation doesn't explain how to...
69+
70+
The example is confusing because...
71+
72+
This section is incorrect - the actual behavior is...
73+
validations:
74+
required: true
75+
76+
- type: textarea
77+
id: suggestion
78+
attributes:
79+
label: Suggested Improvement
80+
description: How should the documentation be improved?
81+
placeholder: |
82+
The documentation should:
83+
- Explain that...
84+
- Include an example showing...
85+
- Clarify that...
86+
87+
Example of what the docs could say:
88+
```markdown
89+
## Section Title
90+
91+
Description...
92+
93+
```python
94+
# Example code
95+
```
96+
```
97+
validations:
98+
required: true
99+
100+
- type: checkboxes
101+
id: contribution
102+
attributes:
103+
label: Contribution
104+
description: Would you be willing to help improve the documentation?
105+
options:
106+
- label: I would be willing to submit a PR with documentation improvements
107+
required: false
108+
109+
- type: textarea
110+
id: additional
111+
attributes:
112+
label: Additional Context
113+
description: Any other context or references
114+
placeholder: |
115+
Related to: #...
116+
See also: ...
117+
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement for abstract-validation-base
3+
title: "[Feature]: "
4+
labels: ["enhancement", "needs-triage"]
5+
assignees: []
6+
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for suggesting a feature! Please describe your idea clearly so we can understand and evaluate it.
12+
13+
- type: checkboxes
14+
id: prerequisites
15+
attributes:
16+
label: Prerequisites
17+
description: Please confirm the following before submitting
18+
options:
19+
- label: I have searched existing issues to ensure this feature hasn't already been requested
20+
required: true
21+
- label: I have read the [documentation](https://github.com/Abstract-Data/abstract-validation-base#readme) to confirm this feature doesn't already exist
22+
required: true
23+
24+
- type: textarea
25+
id: problem
26+
attributes:
27+
label: Problem Statement
28+
description: What problem does this feature solve? What limitation or pain point does it address?
29+
placeholder: |
30+
I'm trying to accomplish X, but currently I have to...
31+
32+
This is frustrating because...
33+
validations:
34+
required: true
35+
36+
- type: textarea
37+
id: solution
38+
attributes:
39+
label: Proposed Solution
40+
description: Describe what you'd like to see implemented
41+
placeholder: |
42+
I would like a way to...
43+
44+
The API could look something like:
45+
```python
46+
# Example usage
47+
```
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: alternatives
53+
attributes:
54+
label: Alternatives Considered
55+
description: What other approaches have you considered or tried?
56+
placeholder: |
57+
I've tried working around this by...
58+
59+
Another approach could be...
60+
61+
- type: dropdown
62+
id: component
63+
attributes:
64+
label: Affected Component
65+
description: Which part of the library would this feature affect?
66+
multiple: true
67+
options:
68+
- ValidationBase / ProcessLog
69+
- BaseValidator / CompositeValidator
70+
- ValidationRunner (streaming)
71+
- Writers (CSV/JSON/Audit)
72+
- ValidatedRecord (SQLModel)
73+
- Rich Integration (observers/dashboard)
74+
- Events / Observer Pattern
75+
- New Component
76+
- Other
77+
validations:
78+
required: true
79+
80+
- type: textarea
81+
id: use-case
82+
attributes:
83+
label: Use Case Example
84+
description: Provide a concrete example showing how this feature would be used
85+
placeholder: |
86+
```python
87+
from abstract_validation_base import ...
88+
89+
# Example showing the feature in action
90+
class MyModel(ValidationBase):
91+
...
92+
93+
# This new feature would allow me to:
94+
result = new_feature(...)
95+
```
96+
render: python
97+
validations:
98+
required: true
99+
100+
- type: dropdown
101+
id: priority
102+
attributes:
103+
label: How important is this feature to you?
104+
options:
105+
- Nice to have
106+
- Would significantly improve my workflow
107+
- Blocking my use case
108+
validations:
109+
required: true
110+
111+
- type: checkboxes
112+
id: contribution
113+
attributes:
114+
label: Contribution
115+
description: Would you be willing to help implement this feature?
116+
options:
117+
- label: I would be willing to submit a PR for this feature
118+
required: false
119+
120+
- type: textarea
121+
id: additional
122+
attributes:
123+
label: Additional Context
124+
description: Any other context, mockups, or references that might help
125+
placeholder: |
126+
Related issues: #...
127+
Similar features in other libraries: ...
128+
Additional notes: ...
129+

0 commit comments

Comments
 (0)