diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..11debbca --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,59 @@ +name: Bug report +description: Report incorrect output or a crash, with a failing input series +title: "[Bug] " +labels: [bug] +body: + - type: markdown + attributes: + value: | + A bug report without a failing input is a rumor. Include a series that reproduces the wrong result — that makes it fixable. + - type: input + id: indicator + attributes: + label: Indicator + description: Which indicator (and mode) misbehaves? + placeholder: "e.g. Sma(period=14), streamed one value at a time" + validations: + required: true + - type: input + id: version + attributes: + label: Version + description: Package version or commit hash. + placeholder: "e.g. 0.8.12 / fa325ee1" + validations: + required: true + - type: textarea + id: input-series + attributes: + label: Failing input series + description: A minimal input series that reproduces the wrong result, plus the expected vs actual output. + placeholder: "prices = [100, 101, 102, 103, 104] # period 3\nexpected = [?, ?, 101, 102, 103]\nactual = [?, ?, 101, 102, 104]" + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected vs actual + description: What should it return, and what does it return? Point to the exact values that diverge. + validations: + required: true + - type: textarea + id: repro + attributes: + label: Reproduction + description: Minimal code that reproduces it (C#, Python, or PineScript). + placeholder: | + using QuanTAlib; + var sma = new Sma(3); + ... + - type: textarea + id: environment + attributes: + label: Environment + description: OS, runtime, version, and CPU if relevant. + placeholder: | + - OS: Windows 11 + - Runtime: .NET 10.0 + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..821a2711 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Q&A + url: https://github.com/mihakralj/QuanTAlib/discussions + about: Ask a question in the Discussions Q&A category instead of opening an issue. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/indicator_request.yml b/.github/ISSUE_TEMPLATE/indicator_request.yml new file mode 100644 index 00000000..9cd224b2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/indicator_request.yml @@ -0,0 +1,41 @@ +name: Indicator request +description: Request a new indicator, with a reference paper or canonical source +title: "[Indicator] " +labels: [enhancement] +body: + - type: markdown + attributes: + value: | + The best requests reference a paper or a canonical implementation we can validate against. A name without a reference is homework, not a spec. + - type: input + id: name + attributes: + label: Indicator name + description: Full name and any common abbreviation. + placeholder: "e.g. Random Walk Index (RWI)" + validations: + required: true + - type: input + id: reference + attributes: + label: Reference paper or source + description: Paper title, author, DOI/URL, or the canonical implementation. + placeholder: 'e.g. Poulos, "Of Trends and Random Walks", Technical Analysis of Stocks & Commodities (1992)' + validations: + required: true + - type: textarea + id: description + attributes: + label: What it measures + description: One or two sentences on what the indicator computes and when it is useful. + - type: textarea + id: formula + attributes: + label: Formula + description: The math, if you have it. + placeholder: "RWI = ... " + - type: textarea + id: expected + attributes: + label: Reference values + description: A couple of known input-to-output pairs from the paper or another library, for validation. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/validation_mismatch.yml b/.github/ISSUE_TEMPLATE/validation_mismatch.yml new file mode 100644 index 00000000..73701fa4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/validation_mismatch.yml @@ -0,0 +1,45 @@ +name: Validation mismatch +description: Report where QuanTAlib disagrees with a reference library or paper +title: "[Validation] " +labels: [bug, validation] +body: + - type: markdown + attributes: + value: | + Every indicator is cross-checked against TA-Lib, Tulip, Skender, and Pandas-TA. If you found a case where we disagree, capture the exact input and the two outputs. + - type: input + id: indicator + attributes: + label: Indicator + description: Which indicator disagrees, and with what settings? + placeholder: "e.g. Hull moving average, period 14" + validations: + required: true + - type: input + id: reference + attributes: + label: Reference + description: The library or paper you compared against, and its version. + placeholder: "e.g. TA-Lib 0.4.0 / Skender 2.x / the original paper" + validations: + required: true + - type: textarea + id: input-series + attributes: + label: Input series + description: The input used for both implementations. + placeholder: "prices = [100, 101, 99, 103, ...]" + validations: + required: true + - type: textarea + id: mismatch + attributes: + label: Disagreement + description: The values from QuanTAlib vs the reference, and the index where they first diverge. + validations: + required: true + - type: textarea + id: notes + attributes: + label: Notes + description: Anything about warm-up conventions, precision, or methodology that might explain the gap. \ No newline at end of file