diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..9d9ff29 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,82 @@ +name: Bug report +description: Report a bug or unexpected behavior in src-method +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a bug! Please fill in as much detail as possible. + See also the "Reporting bugs" section of CONTRIBUTING.md. + + - type: textarea + id: description + attributes: + label: Bug description + description: A clear and concise description of the bug. + placeholder: What went wrong? + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: | + A minimal, self-contained reproducer, ideally with a fixed `seed=`. + For accuracy problems include the number of sites, the bond dimensions, + `chi_out`, the `dtype` and the error metric you used. + render: python + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What did you expect to happen? + validations: + required: true + + - type: dropdown + id: device + attributes: + label: Device + options: + - CPU (NumPy) + - GPU, NVIDIA (CuPy, CUDA) + - GPU, AMD (CuPy, ROCm) + validations: + required: true + + - type: textarea + id: versions + attributes: + label: Versions + description: Versions of `src_method`, Python, NumPy and, for GPU runs, CuPy and the CUDA/ROCm runtime. + render: text + placeholder: | + src_method: (python -c "import src_method; print(src_method.__version__)") + Python: + NumPy: + CuPy: + validations: + required: true + + - type: dropdown + id: os + attributes: + label: Operating system + options: + - Linux (x86_64) + - Linux (aarch64 / ARM64) + - macOS (Apple Silicon) + - macOS (Intel) + - Other (describe below) + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Additional context + description: Logs, tracebacks, or any other relevant information. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..ced9726 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Documentation + url: https://algorithmiq.github.io/src-method/ + about: Check the documentation before opening an issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..365bc34 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,43 @@ +name: Feature request / Enhancement +description: Suggest a new feature or improvement to src-method +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Thanks for suggesting an improvement! Please describe your idea clearly. + + - type: textarea + id: motivation + attributes: + label: Motivation + description: | + What problem does this feature solve, or what use case does it enable? + Is this related to something that is currently impossible or inconvenient? + placeholder: I'm trying to do X, but currently I have to work around it by doing Y… + validations: + required: true + + - type: textarea + id: proposal + attributes: + label: Proposed feature + description: A clear description of the feature or change you'd like to see. + validations: + required: true + + - type: textarea + id: api_sketch + attributes: + label: Proposed API or usage example (optional) + description: If applicable, sketch how the feature would look from a user's perspective. + render: python + placeholder: | + import src_method + # ... + + - type: textarea + id: additional + attributes: + label: Additional context + description: Any other relevant information, including alternative approaches you considered and why your proposal is preferred. diff --git a/.github/ISSUE_TEMPLATE/performance_issue.yml b/.github/ISSUE_TEMPLATE/performance_issue.yml new file mode 100644 index 0000000..16e1192 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/performance_issue.yml @@ -0,0 +1,126 @@ +name: Performance issue +description: Report a performance regression or unexpectedly slow behavior +labels: ["performance"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a performance issue! + Please include benchmark results so we can reproduce and investigate. + + - type: textarea + id: description + attributes: + label: Performance issue description + description: Describe the performance problem you observed. + placeholder: What is slower than expected, and by how much? + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: | + Minimal code snippet that demonstrates the slow behavior, with the + number of sites, bond dimensions, `chi_out`, `dtype` and `device`. + render: python + validations: + required: true + + - type: dropdown + id: os + attributes: + label: Operating system + options: + - Linux (x86_64) + - Linux (aarch64 / ARM64) + - macOS (Apple Silicon) + - macOS (Intel) + - Other (describe below) + validations: + required: true + + - type: input + id: cpu + attributes: + label: CPU model + placeholder: "e.g. Intel Core i9-13900K, AMD EPYC 7763, Apple M3 Pro" + validations: + required: true + + - type: input + id: ram + attributes: + label: Total RAM + placeholder: "e.g. 32 GB" + validations: + required: true + + - type: input + id: cores_used + attributes: + label: Number of cores used + description: How many CPU cores / threads did src_method use during the run (e.g. `OMP_NUM_THREADS`)? + placeholder: "e.g. 8 (out of 16 physical cores)" + validations: + required: true + + - type: textarea + id: bench_results + attributes: + label: Benchmark results + description: | + Please include the benchmark command and output. + + For the pytest benchmark suite, run for example: + + uv sync --group test + uv run pytest -m perf + + For standalone benchmarks, see `benches/`. + placeholder: | + Command: + uv run pytest -m perf + + Output: + ... + validations: + required: true + + - type: dropdown + id: device + attributes: + label: Device + options: + - CPU (NumPy) + - GPU, NVIDIA (CuPy, CUDA) + - GPU, AMD (CuPy, ROCm) + validations: + required: true + + - type: input + id: gpu + attributes: + label: GPU model and memory + description: Only for GPU runs. + placeholder: "e.g. NVIDIA A100 80 GB" + + - type: textarea + id: versions + attributes: + label: Versions + description: Versions of `src_method`, Python, NumPy and, for GPU runs, CuPy and the CUDA/ROCm runtime. + render: text + placeholder: | + src_method: + Python: + NumPy: + CuPy: + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Additional context