From 221f7a71bcb23a8ac776e3cc267646a38494bc1e Mon Sep 17 00:00:00 2001 From: kingchenc Date: Sun, 24 May 2026 02:33:01 +0200 Subject: [PATCH] chore(github): add detailed issue & PR templates, capitalize title prefixes Adds five new issue templates (bug_report_detailed, feature_request_detailed, performance_regression, documentation, question) alongside the existing short forms, plus an optional detailed PR template under .github/PULL_REQUEST_TEMPLATE/ that contributors can opt into via the ?template=detailed.md URL. Existing templates keep their behavior; only title prefixes and prose-paren wording were capitalized for consistency. --- .github/ISSUE_TEMPLATE/bug_report.md | 4 +- .github/ISSUE_TEMPLATE/bug_report_detailed.md | 56 ++++++++++++++++ .github/ISSUE_TEMPLATE/documentation.md | 33 +++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 2 +- .../feature_request_detailed.md | 55 +++++++++++++++ .../ISSUE_TEMPLATE/performance_regression.md | 54 +++++++++++++++ .github/ISSUE_TEMPLATE/question.md | 36 ++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 4 +- .github/PULL_REQUEST_TEMPLATE/detailed.md | 67 +++++++++++++++++++ 9 files changed, 306 insertions(+), 5 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report_detailed.md create mode 100644 .github/ISSUE_TEMPLATE/documentation.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request_detailed.md create mode 100644 .github/ISSUE_TEMPLATE/performance_regression.md create mode 100644 .github/ISSUE_TEMPLATE/question.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/detailed.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 6d7d1f17..13b9a6d4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,7 @@ --- name: Bug report about: Report incorrect behaviour in Wickra -title: "[bug] " +title: "[Bug] " labels: bug assignees: "" --- @@ -32,7 +32,7 @@ assignees: "" - Wickra version: - Language / binding: - OS and architecture: -- Rust / Python / Node version (if relevant): +- Rust / Python / Node version (If relevant): ## Additional context diff --git a/.github/ISSUE_TEMPLATE/bug_report_detailed.md b/.github/ISSUE_TEMPLATE/bug_report_detailed.md new file mode 100644 index 00000000..ce44fbc1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report_detailed.md @@ -0,0 +1,56 @@ +--- +name: Bug report (Detailed) +about: Long-form bug report with environment matrix, minimal reproducer, and expected-vs-actual sections. +title: "[Bug] " +labels: ["bug", "triage"] +assignees: [] +--- + +## Summary + + + +## Affected binding + +- [ ] Rust crate (`wickra`) +- [ ] Python (`pip install wickra`) +- [ ] Node.js (`npm install wickra`) +- [ ] WebAssembly +- [ ] Docs / examples only + +## Environment + +| Field | Value | +| -------------------- | -------------------------------------- | +| Wickra version | `e.g. 0.4.2` | +| Binding version | `e.g. python 0.4.2 / node 0.4.2` | +| OS / arch | `e.g. Windows 11 x86_64, Linux glibc` | +| Rust toolchain | `rustc --version` (If building from source) | +| Python / Node version | `python --version` / `node --version` | + +## Minimal reproducer + + + +```python +# or rust / js +import wickra as ta +... +``` + +## Actual output + +``` + +``` + +## Expected output + + + +## Additional context + + diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 00000000..1a1f088e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -0,0 +1,33 @@ +--- +name: Documentation issue +about: Something in the README, rustdoc, examples, or guides is wrong, missing, or confusing. +title: "[Docs] " +labels: ["documentation", "good first issue"] +assignees: [] +--- + +## Where + + + +## What's wrong / missing + + + +## Suggested change + + + +## Additional context + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 9281181a..987eeab6 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,7 @@ --- name: Feature request about: Suggest a new indicator or capability for Wickra -title: "[feature] " +title: "[Feature] " labels: enhancement assignees: "" --- diff --git a/.github/ISSUE_TEMPLATE/feature_request_detailed.md b/.github/ISSUE_TEMPLATE/feature_request_detailed.md new file mode 100644 index 00000000..0ac72864 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request_detailed.md @@ -0,0 +1,55 @@ +--- +name: Feature request (Detailed) +about: Long-form proposal with API sketch, scope checkboxes, prior-art links, and contribution intent. +title: "[Feat] " +labels: ["enhancement", "triage"] +assignees: [] +--- + +## Problem / motivation + + + +## Proposed solution + + + +```python +import wickra as ta + +# proposed API +ind = ta.SuperTrend(period=10, multiplier=3.0) +ind.update(close, high, low) +``` + +## Scope + +- [ ] New indicator +- [ ] New method on an existing indicator +- [ ] New binding / platform target +- [ ] Performance improvement +- [ ] Ergonomics / API cleanup +- [ ] Other (Explain below) + +## Reference / prior art + + + +## Alternatives considered + + + +## Willingness to contribute + +- [ ] I'd like to implement this myself with guidance +- [ ] I can help review / test +- [ ] Requesting only — no bandwidth to implement diff --git a/.github/ISSUE_TEMPLATE/performance_regression.md b/.github/ISSUE_TEMPLATE/performance_regression.md new file mode 100644 index 00000000..61c01127 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/performance_regression.md @@ -0,0 +1,54 @@ +--- +name: Performance regression +about: Report a measurable slowdown, memory blowup, or throughput drop. +title: "[Perf] regressed in " +labels: ["performance", "regression", "triage"] +assignees: [] +--- + +## Summary + + + +## Affected code path + +- Indicator / API: `e.g. EMA.update` +- Binding: `Rust / Python / Node / Wasm` +- Hot loop or one-shot call? + +## Versions compared + +| Version | Throughput / latency / memory | Notes | +| -------- | ----------------------------- | ----- | +| `0.4.1` | `e.g. 12.3 ns/iter` | baseline (Good) | +| `0.4.2` | `e.g. 38.7 ns/iter` | regressed | + +## Benchmark / reproducer + + + +```bash +cargo bench --bench ema -- --save-baseline new +``` + +``` +ema/update time: [38.5 ns 38.7 ns 38.9 ns] + change: [+213.4% +214.8% +216.1%] (p = 0.00 < 0.05) + Performance has regressed. +``` + +## Hardware / environment + +| Field | Value | +| ------------ | -------------------------------------- | +| CPU | `e.g. Ryzen 9 7950X, AVX2 + AVX512` | +| OS / arch | `e.g. Linux 6.8 x86_64` | +| Toolchain | `rustc 1.x.y` | +| Build flags | `RUSTFLAGS=...`, `--release`, profile | + +## Suspected cause + + diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 00000000..1cfba2e2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,36 @@ +--- +name: Question / usage help +about: Ask how to do something with Wickra. For open-ended discussion prefer GitHub Discussions. +title: "[Question] " +labels: ["question"] +assignees: [] +--- + +> [!NOTE] +> If this is open-ended ("which indicator should I use for X?") please +> use **Discussions** instead — issues are for actionable items. + +## What are you trying to do? + + + +## What have you tried? + + + +```python +import wickra as ta +... +``` + +## What's confusing or blocking you? + + + +## Environment (Only if relevant) + +- Wickra version: `e.g. 0.4.2` +- Binding: `Rust / Python / Node / Wasm` diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 408d8dca..b8a01917 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -23,9 +23,9 @@ - [ ] `cargo test --workspace` passes. - [ ] New behaviour has tests; bug fixes have a regression test. - [ ] Public API changes are mirrored in the Python / Node / WASM bindings - and their type stubs (if applicable). + and their type stubs (If applicable). - [ ] The relevant page on the [project Wiki](https://github.com/kingchenc/wickra/wiki) - and the `README.md` are updated (if applicable). Wiki edits go to a + and the `README.md` are updated (If applicable). Wiki edits go to a separate repository: `https://github.com/kingchenc/wickra.wiki.git`. - [ ] An entry was added under `## [Unreleased]` in `CHANGELOG.md`. diff --git a/.github/PULL_REQUEST_TEMPLATE/detailed.md b/.github/PULL_REQUEST_TEMPLATE/detailed.md new file mode 100644 index 00000000..8565602e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/detailed.md @@ -0,0 +1,67 @@ + + +## Summary + + + +## Type of change + +- [ ] Bug fix (Non-breaking change which fixes an issue) +- [ ] New feature (Non-breaking change which adds functionality) +- [ ] Breaking change (Fix or feature that changes existing public API) +- [ ] Performance improvement +- [ ] Refactor (No functional change) +- [ ] Documentation only +- [ ] CI / build / tooling + +## Affected surfaces + +- [ ] Rust crate (`crates/wickra`) +- [ ] Python binding (`bindings/python`) +- [ ] Node.js binding (`bindings/node`) +- [ ] WebAssembly binding (`bindings/wasm`) +- [ ] Examples / docs + +## Linked issues + + + +Closes # + +## How was this tested? + + + +## Numerical correctness (If you touched an indicator) + +- [ ] Output matches an existing reference (TA-Lib, paper, prior Wickra release) within documented tolerance +- [ ] Streaming `update()` matches batch / `from_slice` output on the same input +- [ ] Edge cases covered: empty input, single point, NaN, leading warm-up window + +## Performance impact (If applicable) + +| Benchmark | Before | After | Δ | +| --------- | ------ | ----- | - | +| | | | | + +## Checklist + +- [ ] `cargo fmt --all` and `cargo clippy --all-targets -- -D warnings` are clean +- [ ] `cargo test --workspace` passes locally +- [ ] Binding tests run (If a binding changed) +- [ ] Public API changes are reflected in `CHANGELOG.md` +- [ ] Public API changes are reflected in rustdoc / README / examples +- [ ] No `todo*.md` or other local-only notes are staged +- [ ] License header / `LICENSE` reference unchanged (PolyForm-NC-1.0.0) + +## Notes for reviewers + +