mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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:
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user