chore(github): redesign issue intake forms and routing

Overhaul the bug report form and restructure issue intake for 2.0:

- Bug report: split actual vs expected behavior, add Affected area and
  Specific tool fields for triage, replace the self-defeating required
  "latest version" checkbox with a Version field that accepts a tag,
  release, or commit (always answerable from any install), modernize
  Docker guidance to the Compose stack, add Host OS, and fix the
  previously required image-tag field that source users could not fill.
- Move feature requests to GitHub Discussions: delete the feature_request
  issue form, rename the orphaned discussion form to ideas.yml so it binds
  to the built-in Ideas category, and point config.yml there.
- Add Translation and Documentation issue forms routed to existing labels.
- Remove the roadmap-update discussion form (roadmap is private).
- Reconcile CONTRIBUTING.md, SUPPORT.md, and the published docs
  contributing guide with the new routing.
This commit is contained in:
SnapOtter
2026-06-17 14:21:18 +08:00
parent ecc0a45f0e
commit 609cd6b609
10 changed files with 263 additions and 137 deletions
@@ -1,47 +0,0 @@
title: ""
labels: []
body:
- type: markdown
attributes:
value: |
Periodic roadmap updates from the maintainers. See the [full roadmap board](https://github.com/orgs/snapotter-hq/projects) for current status.
- type: textarea
id: shipped
attributes:
label: Shipped
description: What landed since the last update?
validations:
required: false
- type: textarea
id: now
attributes:
label: Now (actively working on)
description: What's currently in progress?
validations:
required: true
- type: textarea
id: next
attributes:
label: Next (coming soon)
description: What's planned for the near term?
validations:
required: true
- type: textarea
id: later
attributes:
label: Later (on the radar)
description: What's being considered but not yet scheduled?
validations:
required: false
- type: textarea
id: community
attributes:
label: Community highlights
description: Shoutouts, top-voted feature requests, notable contributions.
validations:
required: false
+89 -24
View File
@@ -1,7 +1,13 @@
name: Bug Report
description: Something isn't working as expected
title: "[Bug] "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to file a bug. The more detail you give, especially how you run SnapOtter and how to reproduce it, the faster we can help.
- type: checkboxes
id: checklist
attributes:
@@ -9,17 +15,26 @@ body:
options:
- label: I searched existing issues and didn't find a duplicate
required: true
- label: I'm running the latest version of SnapOtter
required: true
- label: I've tried the latest version to confirm it isn't already fixed
required: false
- type: textarea
id: description
id: what-happened
attributes:
label: Description
description: What happened, and what did you expect to happen?
label: What happened?
description: Describe the actual behavior you saw.
placeholder: |
When I try to resize an image, the output is blank.
I expected the resized image to be returned normally.
When I resize an image, the downloaded file is 0 bytes.
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: What did you expect to happen instead?
placeholder: |
The resized image downloads normally.
validations:
required: true
@@ -27,41 +42,90 @@ body:
id: steps
attributes:
label: Steps to reproduce
description: How can we reproduce this?
description: How can we reproduce this? Number each step.
placeholder: |
1. Upload a PNG image
2. Select "Resize" tool
2. Select the "Resize" tool
3. Set width to 500
4. Click "Process"
5. Downloaded file is 0 bytes
validations:
required: true
- type: textarea
id: docker-setup
- type: dropdown
id: area
attributes:
label: Docker setup
description: Paste your `docker run` command or `docker-compose.yml` (remove any sensitive values). If running from source, write "running from source via pnpm dev".
render: shell
label: Affected area
description: Which part of SnapOtter does this involve?
options:
- Image tools
- Video tools
- Audio tools
- PDF tools
- Data tools
- Image editor
- Pipelines / automation
- File library
- Account / login
- Installation / Docker / startup
- Other / not sure
validations:
required: true
- type: input
id: image-tag
id: tool
attributes:
label: Image tag
description: Which Docker image tag are you using?
placeholder: "e.g. latest, 1.17.1"
label: Specific tool
description: If this is about one tool, which one? Leave blank if it isn't tool-specific.
placeholder: "e.g. resize, background-remover, pdf-merge"
- type: dropdown
id: install-method
attributes:
label: How are you running SnapOtter?
options:
- Docker Compose
- Running from source (pnpm dev)
- Other (describe in deployment details)
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Image tag, release version, or git commit. Running from source? Paste the commit hash.
placeholder: "e.g. latest, 2.0.0, or a1b2c3d"
validations:
required: true
- type: textarea
id: deployment
attributes:
label: Deployment details
description: "Your compose file or run command, with secrets redacted. Write N/A if running from source. Strongly recommended for Docker issues."
render: shell
- type: dropdown
id: arch
attributes:
label: Host architecture
options:
- AMD64 (Intel/AMD)
- ARM64 (Apple Silicon, Raspberry Pi)
validations:
required: true
- type: dropdown
id: platform
id: host-os
attributes:
label: Platform
label: Host OS
options:
- AMD64 (Intel/AMD)
- ARM64 (Apple Silicon, Raspberry Pi)
- Linux (native)
- macOS (Docker Desktop)
- Windows (Docker Desktop)
- Windows (WSL2)
- Other / running from source
validations:
required: true
@@ -69,13 +133,14 @@ body:
id: browser
attributes:
label: Browser
description: Only if the bug is in the web UI.
placeholder: "e.g. Chrome 130, Firefox 133, Safari 18"
- type: textarea
id: logs
attributes:
label: Logs
description: Paste any relevant container logs (`docker logs <container>`).
description: "Relevant logs, secrets redacted. For Compose: docker compose logs app (or postgres / redis)."
render: shell
- type: textarea
@@ -90,5 +155,5 @@ body:
label: Would you like to contribute a fix?
description: If yes, we can assign this issue to you. See CONTRIBUTING.md for the PR process.
options:
- "Yes, I'd like to submit a PR"
- "No, just reporting"
- "Yes, I'd like to submit a PR"
+6 -3
View File
@@ -1,11 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: Feature request or idea
url: https://github.com/snapotter-hq/snapotter/discussions/new?category=ideas
about: Suggest a new tool or improvement and let the community upvote it.
- name: Questions and help
url: https://discord.gg/hr3s7HPUsr
about: Ask questions, get setup help, and chat with the community.
- name: Documentation
url: https://docs.snapotter.com/
about: Check the docs for setup guides, configuration, and API reference.
- name: Discord
url: https://discord.gg/hr3s7HPUsr
about: Ask questions, get help, and chat with the community.
- name: Security vulnerability
url: https://github.com/snapotter-hq/snapotter/security/advisories/new
about: Report security issues privately through GitHub Security Advisories.
+61
View File
@@ -0,0 +1,61 @@
name: Documentation Issue
description: Report wrong, missing, or unclear documentation
title: "[Docs] "
labels: ["documentation", "area: docs"]
body:
- type: markdown
attributes:
value: |
Thanks for helping improve the docs. For small fixes, a direct PR to apps/docs/ is welcome too.
- type: checkboxes
id: checklist
attributes:
label: Before submitting
options:
- label: I searched existing issues and didn't find a duplicate
required: true
- type: dropdown
id: kind
attributes:
label: Issue type
options:
- Incorrect or outdated
- Missing / not documented
- Unclear or confusing
- Broken link or example
- Typo or formatting
validations:
required: true
- type: input
id: page
attributes:
label: Page
description: Link to the docs page. If it's missing, link the closest page to where it belongs.
placeholder: "e.g. https://docs.snapotter.com/guide/configuration"
validations:
required: true
- type: textarea
id: problem
attributes:
label: What's wrong?
description: Describe what's incorrect, missing, or confusing.
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: Suggested fix
description: If you have a correction or wording suggestion, share it here.
- type: dropdown
id: willing-to-fix
attributes:
label: Would you like to submit a PR?
options:
- "No, just reporting"
- "Yes, I'd like to submit a PR"
@@ -1,54 +0,0 @@
name: Feature Request
description: Suggest a new tool, improvement, or change
labels: ["enhancement"]
body:
- type: checkboxes
id: checklist
attributes:
label: Before submitting
options:
- label: I searched existing issues and didn't find a duplicate
required: true
- type: textarea
id: problem
attributes:
label: Problem
description: What problem does this solve? Describe the use case or frustration.
placeholder: |
I frequently need to convert AVIF files to JPEG, but there's no tool for it.
I currently have to use an external service which means my images leave my machine.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: How do you think this should work?
placeholder: |
Add an AVIF option to the format conversion tool, similar to how
HEIC and WebP are already supported.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Have you tried any workarounds? Are there other approaches that could work?
- type: textarea
id: context
attributes:
label: Additional context
description: Screenshots, links, examples, or anything else that helps explain the request.
- type: dropdown
id: willing-to-implement
attributes:
label: Would you like to implement this?
description: Feature PRs require issue approval first. If approved, we can assign this to you.
options:
- "Yes, I'd like to submit a PR if approved"
- "No, just suggesting"
+92
View File
@@ -0,0 +1,92 @@
name: Translation Issue
description: Report a wrong, missing, or awkward translation
title: "[Translation] "
labels: ["translation", "area: i18n"]
body:
- type: markdown
attributes:
value: |
Thanks for helping improve SnapOtter's translations. If you'd like to fix it yourself, translation PRs are welcome too (the locale files live in packages/shared/src/i18n/).
- type: checkboxes
id: checklist
attributes:
label: Before submitting
options:
- label: I searched existing issues and didn't find a duplicate
required: true
- type: dropdown
id: locale
attributes:
label: Language
options:
- English (en)
- Arabic (ar)
- Chinese, Simplified (zh-CN)
- Chinese, Traditional (zh-TW)
- Dutch (nl)
- French (fr)
- German (de)
- Hindi (hi)
- Indonesian (id)
- Italian (it)
- Japanese (ja)
- Korean (ko)
- Polish (pl)
- Portuguese, Brazil (pt-BR)
- Russian (ru)
- Spanish (es)
- Swedish (sv)
- Thai (th)
- Turkish (tr)
- Ukrainian (uk)
- Vietnamese (vi)
validations:
required: true
- type: dropdown
id: kind
attributes:
label: Issue type
options:
- Incorrect translation
- Awkward or unnatural wording
- Untranslated (still shows English)
- Text is cut off or overflows
- Other
validations:
required: true
- type: input
id: location
attributes:
label: Where does it appear?
description: The string key if you know it, otherwise where you saw it in the UI.
placeholder: "e.g. tools.resize.title, or the Resize tool settings panel"
validations:
required: true
- type: textarea
id: current
attributes:
label: Current text
description: What does it say now? Paste the English fallback if it's untranslated.
validations:
required: true
- type: textarea
id: suggested
attributes:
label: Suggested text
description: What should it say instead?
validations:
required: true
- type: dropdown
id: willing-to-fix
attributes:
label: Would you like to submit a PR?
options:
- "No, just reporting"
- "Yes, I'd like to submit a PR"