diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..04add82e99 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,57 @@ +name: Bug report +description: Report incorrect behavior, a crash, or a RAW decoding problem. +title: "[Bug]: " +body: + - type: markdown + attributes: + value: | + Search [existing issues](https://github.com/storytold/lightcraft/issues?q=is%3Aissue) first. If the same problem is reported, add reproduction details there. + Issues are public. Remove secrets, personal paths, and private photo metadata from logs, screenshots, and samples. + - type: input + id: version + attributes: + label: LightCraft version + description: Copy the version from the About dialog, or give the commit hash for a source build. + validations: + required: true + - type: input + id: environment + attributes: + label: Operating system and hardware + description: Include the OS version and CPU architecture. For the web app, also include the browser and version. + validations: + required: true + - type: textarea + id: behavior + attributes: + label: Actual and expected behavior + description: Describe what happened and what you expected. Include the exact error message if there is one. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: Give the shortest sequence that shows the problem. Say whether it happens every time. + placeholder: | + 1. Open or import ... + 2. Select ... + 3. ... + validations: + required: true + - type: input + id: camera + attributes: + label: Camera, lens, and file format (if relevant) + description: For RAW problems, include the camera model, RAW mode or compression, and whether the camera JPEG looks correct. + - type: textarea + id: evidence + attributes: + label: Screenshots or a small sample (optional) + description: Share only material you can make public. Prefer a generated or CC0 sample; remove private metadata. Do not attach Adobe assets or profiles. + - type: textarea + id: logs + attributes: + label: Relevant logs (optional) + description: Paste only the relevant, redacted excerpt. Do not include credentials or private file paths. + render: text diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..0086358db1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..1969a0eaa9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,33 @@ +name: Feature request +description: Describe a missing photo workflow or an improvement to an existing one. +title: "[Feature]: " +body: + - type: markdown + attributes: + value: | + Search [existing issues](https://github.com/storytold/lightcraft/issues?q=is%3Aissue) first. Use a reaction to support an existing request, or add details about your workflow there. + Issues are public; keep private photo metadata, file paths, and credentials out of examples. + - type: textarea + id: problem + attributes: + label: What workflow is missing or difficult? + description: Describe the task you are trying to complete and who would benefit. + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Desired behavior + description: Explain what LightCraft should do, with a concrete example if possible. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives or workarounds (optional) + description: Describe what you use today and why it does not meet your needs. + - type: textarea + id: context + attributes: + label: Additional context (optional) + description: Include relevant OS, camera, or file-format details. Share only material you can make public; do not attach Adobe assets or profiles. diff --git a/.github/ISSUE_TEMPLATE/performance.yml b/.github/ISSUE_TEMPLATE/performance.yml new file mode 100644 index 0000000000..4f537c5548 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/performance.yml @@ -0,0 +1,50 @@ +name: Performance problem +description: Report slow imports, rendering, navigation, or a large-library slowdown. +title: "[Performance]: " +body: + - type: markdown + attributes: + value: | + Search [existing issues](https://github.com/storytold/lightcraft/issues?q=is%3Aissue) first; add measurements to an existing report when possible. + Issues are public. Redact secrets, personal paths, and private photo metadata before sharing evidence. + - type: input + id: version + attributes: + label: LightCraft version + description: Copy the version from the About dialog, or give the commit hash for a source build. + validations: + required: true + - type: textarea + id: environment + attributes: + label: Operating system and hardware + description: Include OS version, CPU, RAM, GPU or driver, and storage type (internal disk, USB, or network). For the web app, include the browser and version. + validations: + required: true + - type: textarea + id: workload + attributes: + label: Library and workload + description: Include the number of photos, file types or camera models, image dimensions, active edits, and the operation that is slow. Estimates are fine. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Steps to reproduce + description: Include whether this is the first run or a repeat with cached previews, and whether it happens on a small library too. + validations: + required: true + - type: textarea + id: timings + attributes: + label: Measured and expected performance + description: Give elapsed time or frame rate if possible, what you expected, and whether the UI freezes or can cancel the operation. Approximate measurements are fine. + validations: + required: true + - type: textarea + id: logs + attributes: + label: Relevant logs (optional) + description: Paste a small, redacted excerpt. Remove credentials and private file paths. + render: text