From b6cd7e40285fdb6828a210ee77b6fdfa8a6f1c47 Mon Sep 17 00:00:00 2001 From: Alejandro Gallo Date: Mon, 21 Sep 2026 20:28:27 +0200 Subject: [PATCH 1/2] chore: add github issue templates adapted from monoprop's repo --- .github/ISSUE_TEMPLATE/bug_report.yml | 72 +++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 42 ++++++ .github/ISSUE_TEMPLATE/performance_issue.yml | 145 +++++++++++++++++++ 4 files changed, 264 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/ISSUE_TEMPLATE/performance_issue.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..bd8a298 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,72 @@ +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. + + - 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: Minimal steps to reproduce the behavior. + placeholder: | + 1. Import ... + 2. Call ... + 3. Observe error ... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What did you expect to happen? + 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: src_method_version + attributes: + label: src-method version + placeholder: "e.g. 0.3.1 — run: python -c \"import src_method; print(src_method.__version__)\"" + validations: + required: true + + - type: input + id: python_version + attributes: + label: Python version + placeholder: "e.g. 3.11.9 — run: python --version" + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Additional context + description: Logs, tracebacks, screenshots, 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..a11286d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,42 @@ +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. + 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..b59db78 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/performance_issue.yml @@ -0,0 +1,145 @@ +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. + placeholder: | + import src_method + # ... + 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? + 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 python -m pytest -m "perf" --log-cli-level=WARNING + + For SRC primitive benchmarks, see `benches/primitives/`. + placeholder: | + Command: + uv run python -m pytest -m "perf" --log-cli-level=WARNING + + Output: + ... + validations: + required: true + + - type: dropdown + id: install_tool + attributes: + label: Installation tool + options: + - pip + - uv + - Other (describe below) + validations: + required: true + + - type: dropdown + id: install_artifact + attributes: + label: Installation artifact + options: + - Wheel (pre-built binary) + - sdist (built from source) + - Editable install from source (git clone) + validations: + required: true + + - type: textarea + id: sdist_details + attributes: + label: Source build details (sdist only) + description: | + If you built from source, provide: + - Compiler name and version + - Versions of Boost, nanobind + - How dependencies were installed + placeholder: | + Compiler: g++ 13.2 + Boost: 1.84 + + - type: input + id: src_method_version + attributes: + label: src_method version + placeholder: "e.g. 0.3.2" + validations: + required: true + + - type: input + id: python_version + attributes: + label: Python version + placeholder: "e.g. 3.11.9" + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Additional context From a9b523f3efb71adc3a488624d6a7d9f09daff050 Mon Sep 17 00:00:00 2001 From: Panadestein Date: Tue, 6 Oct 2026 11:54:27 +0200 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=F0=9F=94=A7=20tailor=20issue=20te?= =?UTF-8?q?mplates=20to=20a=20pure-Python,=20GPU-capable=20package?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop the C++ build fields inherited from monoprop, add device and version fields, and align the bug template with CONTRIBUTING.md. Assisted-by: pi:claude-sonnet-5.5 --- .github/ISSUE_TEMPLATE/bug_report.yml | 52 ++++++++------ .github/ISSUE_TEMPLATE/feature_request.yml | 1 + .github/ISSUE_TEMPLATE/performance_issue.yml | 71 +++++++------------- 3 files changed, 58 insertions(+), 66 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index bd8a298..9d9ff29 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -6,6 +6,7 @@ body: 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 @@ -20,11 +21,11 @@ body: id: reproduction attributes: label: Steps to reproduce - description: Minimal steps to reproduce the behavior. - placeholder: | - 1. Import ... - 2. Call ... - 3. Observe error ... + 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 @@ -37,31 +38,40 @@ body: required: true - type: dropdown - id: os + id: device attributes: - label: Operating system + label: Device options: - - Linux (x86_64) - - Linux (aarch64 / ARM64) - - macOS (Apple Silicon) - - macOS (Intel) - - Other (describe below) + - CPU (NumPy) + - GPU, NVIDIA (CuPy, CUDA) + - GPU, AMD (CuPy, ROCm) validations: required: true - - type: input - id: src_method_version + - type: textarea + id: versions attributes: - label: src-method version - placeholder: "e.g. 0.3.1 — run: python -c \"import src_method; print(src_method.__version__)\"" + 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: input - id: python_version + - type: dropdown + id: os attributes: - label: Python version - placeholder: "e.g. 3.11.9 — run: python --version" + label: Operating system + options: + - Linux (x86_64) + - Linux (aarch64 / ARM64) + - macOS (Apple Silicon) + - macOS (Intel) + - Other (describe below) validations: required: true @@ -69,4 +79,4 @@ body: id: additional attributes: label: Additional context - description: Logs, tracebacks, screenshots, or any other relevant information. + description: Logs, tracebacks, or any other relevant information. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index a11286d..365bc34 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -31,6 +31,7 @@ body: 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 # ... diff --git a/.github/ISSUE_TEMPLATE/performance_issue.yml b/.github/ISSUE_TEMPLATE/performance_issue.yml index b59db78..16e1192 100644 --- a/.github/ISSUE_TEMPLATE/performance_issue.yml +++ b/.github/ISSUE_TEMPLATE/performance_issue.yml @@ -21,10 +21,10 @@ body: id: reproduction attributes: label: Steps to reproduce - description: Minimal code snippet that demonstrates the slow behavior. - placeholder: | - import src_method - # ... + 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 @@ -61,7 +61,7 @@ body: id: cores_used attributes: label: Number of cores used - description: How many CPU cores / threads did src_method use during the run? + 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 @@ -76,12 +76,12 @@ body: For the pytest benchmark suite, run for example: uv sync --group test - uv run python -m pytest -m "perf" --log-cli-level=WARNING + uv run pytest -m perf - For SRC primitive benchmarks, see `benches/primitives/`. + For standalone benchmarks, see `benches/`. placeholder: | Command: - uv run python -m pytest -m "perf" --log-cli-level=WARNING + uv run pytest -m perf Output: ... @@ -89,53 +89,34 @@ body: required: true - type: dropdown - id: install_tool + id: device attributes: - label: Installation tool + label: Device options: - - pip - - uv - - Other (describe below) + - CPU (NumPy) + - GPU, NVIDIA (CuPy, CUDA) + - GPU, AMD (CuPy, ROCm) validations: required: true - - type: dropdown - id: install_artifact + - type: input + id: gpu attributes: - label: Installation artifact - options: - - Wheel (pre-built binary) - - sdist (built from source) - - Editable install from source (git clone) - validations: - required: true + label: GPU model and memory + description: Only for GPU runs. + placeholder: "e.g. NVIDIA A100 80 GB" - type: textarea - id: sdist_details + id: versions attributes: - label: Source build details (sdist only) - description: | - If you built from source, provide: - - Compiler name and version - - Versions of Boost, nanobind - - How dependencies were installed + label: Versions + description: Versions of `src_method`, Python, NumPy and, for GPU runs, CuPy and the CUDA/ROCm runtime. + render: text placeholder: | - Compiler: g++ 13.2 - Boost: 1.84 - - - type: input - id: src_method_version - attributes: - label: src_method version - placeholder: "e.g. 0.3.2" - validations: - required: true - - - type: input - id: python_version - attributes: - label: Python version - placeholder: "e.g. 3.11.9" + src_method: + Python: + NumPy: + CuPy: validations: required: true