From c100280523542b475ed6b6473a3975c9695e41f5 Mon Sep 17 00:00:00 2001 From: SatoryKono <821311@gmail.com> Date: Mon, 23 Feb 2026 13:50:59 +0300 Subject: [PATCH 1/2] chore: add PR and issue templates Add pull request template with summary, type, layer checkboxes, test plan, and architecture compliance checklist. Add issue templates for bug reports (with layer/provider dropdowns) and feature requests (with scope selection). Co-Authored-By: Claude Opus 4.6 --- .github/ISSUE_TEMPLATE/bug_report.yml | 68 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 41 +++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 39 +++++++++++++ 3 files changed, 148 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..a4e7a45891 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,68 @@ +name: Bug Report +description: Report a bug in BioETL +labels: ["bug"] +body: + - type: textarea + id: description + attributes: + label: Description + description: What happened? + placeholder: Describe the bug... + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: How can we reproduce this? + placeholder: | + 1. Run `bioetl run --pipeline ...` + 2. ... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What should have happened? + validations: + required: true + + - type: dropdown + id: layer + attributes: + label: Affected layer + options: + - Domain + - Application + - Infrastructure + - Composition + - Interfaces / CLI + - Config / Pipeline + - Unknown + validations: + required: true + + - type: dropdown + id: provider + attributes: + label: Provider (if applicable) + options: + - ChEMBL + - PubChem + - UniProt + - PubMed + - CrossRef + - OpenAlex + - Semantic Scholar + - Composite + - N/A + + - type: textarea + id: logs + attributes: + label: Relevant logs + description: Paste any error output or logs + render: shell diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..f13b85a922 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,41 @@ +name: Feature Request +description: Suggest a new feature or improvement +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: Problem + description: What problem does this solve? + placeholder: I'm frustrated when... + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Proposed solution + description: How should this work? + validations: + required: true + + - type: dropdown + id: scope + attributes: + label: Scope + options: + - New pipeline / provider + - Existing pipeline enhancement + - Data quality / validation + - CLI / UX + - Performance + - Infrastructure / DevOps + - Documentation + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Any other approaches you considered? diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..665669bcef --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,39 @@ +## Summary + + + +## Changes + +- + +## Type + +- [ ] Bug fix +- [ ] New feature +- [ ] Refactoring (no functional changes) +- [ ] Config / pipeline change +- [ ] Documentation +- [ ] CI / infrastructure + +## Affected layers + +- [ ] Domain +- [ ] Application +- [ ] Infrastructure +- [ ] Composition +- [ ] Interfaces +- [ ] Configs + +## Test plan + +- [ ] Unit tests pass (`pytest tests/unit/`) +- [ ] Architecture tests pass (`pytest tests/architecture/`) +- [ ] Type check passes (`mypy --strict src/bioetl/`) +- [ ] Manual verification (describe below if applicable) + +## Checklist + +- [ ] No new import boundary violations (ARCH-001) +- [ ] No hardcoded secrets (AP-005) +- [ ] Type annotations on all public functions (TYPE-001) +- [ ] Tests added/updated for new code (TEST-002) From 3e0c46c4829b49ed3cc1a4e71239c7e00a960979 Mon Sep 17 00:00:00 2001 From: SatoryKono <821311@gmail.com> Date: Tue, 3 Mar 2026 09:55:57 +0300 Subject: [PATCH 2/2] fix(github): avoid case-conflicting PR template path --- .github/PULL_REQUEST_TEMPLATE.md | 39 -------------------------------- .github/pull_request_template.md | 37 ++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 46 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 665669bcef..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,39 +0,0 @@ -## Summary - - - -## Changes - -- - -## Type - -- [ ] Bug fix -- [ ] New feature -- [ ] Refactoring (no functional changes) -- [ ] Config / pipeline change -- [ ] Documentation -- [ ] CI / infrastructure - -## Affected layers - -- [ ] Domain -- [ ] Application -- [ ] Infrastructure -- [ ] Composition -- [ ] Interfaces -- [ ] Configs - -## Test plan - -- [ ] Unit tests pass (`pytest tests/unit/`) -- [ ] Architecture tests pass (`pytest tests/architecture/`) -- [ ] Type check passes (`mypy --strict src/bioetl/`) -- [ ] Manual verification (describe below if applicable) - -## Checklist - -- [ ] No new import boundary violations (ARCH-001) -- [ ] No hardcoded secrets (AP-005) -- [ ] Type annotations on all public functions (TYPE-001) -- [ ] Tests added/updated for new code (TEST-002) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c4cef4390e..665669bcef 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,16 +1,39 @@ ## Summary - + ## Changes - +## Type + +- [ ] Bug fix +- [ ] New feature +- [ ] Refactoring (no functional changes) +- [ ] Config / pipeline change +- [ ] Documentation +- [ ] CI / infrastructure + +## Affected layers + +- [ ] Domain +- [ ] Application +- [ ] Infrastructure +- [ ] Composition +- [ ] Interfaces +- [ ] Configs + +## Test plan + +- [ ] Unit tests pass (`pytest tests/unit/`) +- [ ] Architecture tests pass (`pytest tests/architecture/`) +- [ ] Type check passes (`mypy --strict src/bioetl/`) +- [ ] Manual verification (describe below if applicable) + ## Checklist -- [ ] `make lint` passes -- [ ] `make test` passes -- [ ] No hardcoded secrets or credentials -- [ ] Architecture tests pass (`pytest tests/architecture/ -v`) -- [ ] Documentation updated if behavior changed -- [ ] Follows Conventional Commits format +- [ ] No new import boundary violations (ARCH-001) +- [ ] No hardcoded secrets (AP-005) +- [ ] Type annotations on all public functions (TYPE-001) +- [ ] Tests added/updated for new code (TEST-002)