From 35f137ba54ca250af5edeed899c62c668b0b5717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enes=20Ya=C4=9F=C4=B1z?= Date: Tue, 27 Oct 2026 01:32:30 +0300 Subject: [PATCH 1/2] docs(contributing): make issue-first with linked PRs the default flow Every change starts with an issue; the pull request is opened early against develop and linked with a closing keyword. The PR template now carries a required Closes line and checklist item. Co-Authored-By: Claude Opus 4.8 --- .github/pull_request_template.md | 6 +++++- CONTRIBUTING.md | 17 +++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 1975fc2..5325a73 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,7 +4,10 @@ ## Why - +Closes # + + ## Changes @@ -16,6 +19,7 @@ ## Checklist +- [ ] This pull request is linked to an issue (`Closes #NNN` above) - [ ] The pull request targets `develop` and is about one thing - [ ] Commit messages follow Conventional Commits (`feat(scope): ...`, `fix(scope): ...`) - [ ] CI is green (backend tests, frontend build and tests, dependency gate) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 74a6ad8..d6b8f0d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,9 +5,12 @@ and pull requests are all welcome. ## Before you start -- For a bug, open an issue with the registry, the package, the two versions and what you expected. -- For a larger change, open an issue first so we can agree on the approach. -- Security problems go through [SECURITY.md](SECURITY.md), not through an issue. +Every change starts with an issue. Open one first — a bug, a registry quirk, a feature or a chore — +using the matching issue template, so the work has a tracked rationale before any code is written. + +- For a bug, include the registry, the package, the two versions and what you expected. +- For a feature or a larger change, describe the approach in the issue so we can agree on it first. +- Security problems go through [SECURITY.md](SECURITY.md), never a public issue. ## Setting up @@ -16,7 +19,13 @@ a PostgreSQL and Redis you can reach on `localhost`. ## Branches and pull requests -- Branch from `develop` and open the pull request into `develop`. `master` only receives releases. +We work issue-first, with the pull request opened alongside the issue rather than at the end: + +- Once an issue exists, branch from `develop` and open the pull request into `develop` early — a + draft is fine — so the work is visible while it is still in progress. `master` only receives + releases. +- Link the pull request to its issue with a closing keyword (`Closes #123`) so merging the pull + request closes the issue. A pull request without a linked issue will be asked to add one. - Keep a pull request about one thing and fill in the pull request template, in English. CI (backend tests, frontend build and tests, dependency gate) must be green. - Commit messages follow Conventional Commits: `feat(scope): ...`, `fix(scope): ...`, `docs: ...`. From fcfa3b7f6e117c2edf4e02e1eef96fa8ff561806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enes=20Ya=C4=9F=C4=B1z?= Date: Tue, 27 Oct 2026 01:32:30 +0300 Subject: [PATCH 2/2] chore(github): add bug, feature and chore issue templates Adds the three issue templates plus config.yml, which disables blank issues and routes security reports to the private policy. Supports the issue-first contribution flow. Co-Authored-By: Claude Opus 4.8 --- .github/ISSUE_TEMPLATE/bug_report.md | 27 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/chore.md | 20 +++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 +++++ .github/ISSUE_TEMPLATE/feature_request.md | 23 +++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/chore.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..00dc688 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,27 @@ +--- +name: Bug report +about: A package whose release notes are wrong or missing, or anything else that misbehaves +title: 'bug: ' +labels: bug +--- + + + +## What happened + + + +## Where + +- Registry: +- Package: +- Versions compared: +- URL (if any): + +## Steps to reproduce + +1. + +## Notes + + diff --git a/.github/ISSUE_TEMPLATE/chore.md b/.github/ISSUE_TEMPLATE/chore.md new file mode 100644 index 0000000..72e57c9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/chore.md @@ -0,0 +1,20 @@ +--- +name: Chore +about: Maintenance, tooling, CI, dependencies, docs or process — no user-facing behaviour change +title: 'chore: ' +labels: chore +--- + +## What + + + +## Why + + + +## Done when + +- [ ] + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..6a8b885 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Security report + url: https://github.com/pkgdiff-dev/pkgdiff/security/policy + about: Report a security problem privately through SECURITY.md — never a public issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..1a8536a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,23 @@ +--- +name: Feature request +about: A new capability or a larger change — agree the approach here before any code +title: 'feat: ' +labels: enhancement +--- + +## Problem + + + +## Proposed approach + + + +## Alternatives considered + + + +## Scope / out of scope + +