Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Bug report
description: Report a reproducible problem in a utility or supported workflow.
title: "[Bug]: "
labels: [bug]
body:
- type: markdown
attributes:
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Feature proposal
description: Agree on a new capability or a behavior change before implementation.
title: "[Feature]: "
labels: [enhancement]
body:
- type: markdown
attributes:
Expand Down
5 changes: 5 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ and the [roadmap](ROADMAP.md) first, then choose a form in
- **Documentation, maintenance, or question:** the affected page/tool,
requested change or question, and what would resolve it

The Bug report form assigns the existing red `bug` label; Feature proposal
assigns `enhancement`. When creating an issue with `gh issue create`, pass
`--label bug` or `--label enhancement` explicitly: CLI/API creation with a body
does not apply the web form defaults.

Track one independently verifiable outcome per issue, not one issue per commit.
The owner can self-triage and assign their own work. Several commits or partial
PRs may share a tracking issue; questions and ideas do not have to become
Expand Down
3 changes: 2 additions & 1 deletion tools/test_contribution_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,8 @@ def test_forms_have_unique_fields_and_required_inputs(self):
self.assertIs(form["blank_issues_enabled"], False)
continue
self.assertTrue(form["name"] and form["description"])
self.assertNotIn("labels", form)
expected_labels = {"bug_report.yml": ["bug"], "feature_request.yml": ["enhancement"]}
self.assertEqual(form.get("labels", []), expected_labels.get(path.name, []))
self.assertNotIn("assignees", form)
fields = [field for field in form["body"] if field["type"] != "markdown"]
ids = [field["id"] for field in fields]
Expand Down
Loading