diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..30faa5d49 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,108 @@ +name: Bug Report +description: Report a bug in Shiny for Python +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for reporting a bug! Please provide a **Minimal Reproducible Example** (MRE). This is the *most important* part. The easier it is for us to reproduce the bug, the faster we can fix it. Search for similar issues before submitting. + + - type: dropdown + id: component + attributes: + label: Component + description: Which part of Shiny is affected? + options: + - UI (ui.*) + - Server (server.*) + - Reactive Programming + - Input/Output Bindings + - Session Management + - Deployment + - Documentation + - Installation + - Other + validations: + required: true + + - type: dropdown + id: severity + attributes: + label: Severity + options: + - P0 - Critical (crash/unusable) + - P1 - High (major feature broken) + - P2 - Medium (workaround exists) + - P3 - Low (minor inconvenience) + validations: + required: true + + - type: input + id: version + attributes: + label: Shiny Version + description: '`shiny --version`' + placeholder: ex. 1.2.1 + validations: + required: true + + - type: input + id: python-version + attributes: + label: Python Version + description: '`python --version`' + placeholder: ex. 3.10.6 + validations: + required: true + + - type: textarea + id: minimal-example + attributes: + label: Minimal Reproducible Example + description: | + A *minimal*, self-contained app demonstrating the issue. Remove unrelated code. We should be able to copy, paste, and run it. + + Template: + + ```python + from shiny import App, render, ui + + app_ui = ui.page_fluid() + def server(input, output, session): + pass + app = App(app_ui, server) + ``` + render: python + validations: + required: true + + - type: textarea + id: behavior + attributes: + label: Behavior + description: Describe what *is* happening and what you *expected* to happen. + placeholder: | + Current: When I click..., the app freezes. + Expected: The plot should update without freezing. + validations: + required: true + + - type: textarea + id: errors + attributes: + label: Error Messages (if any) + description: Copy and paste any errors/tracebacks. + render: shell + + - type: textarea + id: environment + attributes: + label: Environment + description: | + - OS: [e.g., Windows 10, macOS 15.2] + - Browser: [e.g., Chrome 132] + - Dependencies: `pip freeze` or `conda list` (especially `shiny`, `pandas`, `numpy`, etc.) + render: markdown + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml new file mode 100644 index 000000000..e68245571 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -0,0 +1,89 @@ +name: Documentation Issue +description: Report an issue or suggest improvements to the documentation. +title: "[Docs]: " +labels: ["documentation"] +body: + - type: markdown + attributes: + value: | + Thanks for helping improve the documentation! Provide as much detail as possible. + + - type: dropdown + id: doc-type + attributes: + label: Type + description: What type of documentation? + options: + - API Reference + - Tutorials/Guides + - Examples + - Getting Started + - Conceptual Guides + - Function Docstrings + - Code Comments + - Installation + - Deployment + - Testing + - Other + validations: + required: true + + - type: input + id: doc-location + attributes: + label: Location + description: URL or file path of the documentation. + placeholder: "e.g., https://... or `shiny/ui/__init__.py`" + validations: + required: true + + - type: dropdown + id: issue-type + attributes: + label: Issue + description: What kind of issue? + options: + - Missing + - Incorrect + - Unclear + - Outdated + - Broken Links + - Code Example Issue + - Typo/Grammar + - Translation + - Suggestion + - Other + validations: + required: true + + - type: textarea + id: suggested-content + attributes: + label: Suggested Changes + description: | + What changes would you like to see? Be specific. Include suggested text or code (use markdown code blocks). + placeholder: | + Provide suggested improvements or new content here... + ```python + # Example code + ``` + validations: + required: true + + - type: textarea + id: motivation + attributes: + label: Motivation (Optional) + description: Why is this change needed? How will it help users? + placeholder: "e.g., This clarification will prevent misunderstanding..." + validations: + required: false + + - type: input + id: shiny-version + attributes: + label: Shiny Version (if applicable) + description: Only if the issue is version-specific. + placeholder: ex. 1.2.1 + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..6beae6077 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,99 @@ +name: Feature Request +description: Suggest an idea for Shiny for Python. +title: "[Feature]: " +labels: ["enhancement", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for suggesting a new feature! Please provide as much detail as possible. + + - type: dropdown + id: feature-category + attributes: + label: Category + description: What area of Shiny would this enhance? + options: + - UI Components + - Reactive Programming + - Input/Output + - Deployment + - Dev Tools + - Performance + - Testing + - Accessibility + - Integrations + - Other + validations: + required: true + + - type: dropdown + id: feature-scope + attributes: + label: Scope + options: + - Major Feature + - Minor Enhancement + - Quality of Life + - Experimental + validations: + required: true + + - type: textarea + id: problem-description + attributes: + label: Problem + description: What problem does this feature solve? Why is it needed? + placeholder: | + As a user, I'm frustrated when... because... + I have to workaround this by..., which is not ideal because... + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: Solution + description: Describe the feature. What should it do? How should it work? + placeholder: | + I would like a feature that... + ```python + # Potential API (if applicable) + from shiny import ui + ui.new_component(...) + ``` + validations: + required: true + - type: textarea + id: alternative-solutions + attributes: + label: Alternatives (Optional) + description: Have you considered alternatives? Why are they less suitable? + placeholder: "I've considered... but my solution is better because..." + + - type: textarea + id: example-usage + attributes: + label: Example (Optional) + description: Code example of how this feature would be used. + placeholder: | + ```python + from shiny import App, ui + app_ui = ui.page_fluid(ui.your_new_feature(...)) + ``` + render: python + + - type: textarea + id: expected-impact + attributes: + label: Impact (Optional) + description: How would this benefit users? Who would use it? + placeholder: "Useful for users who want to... Enables new use cases..." + - type: dropdown + id: contribution-interest + attributes: + label: Contribution? (Optional) + options: + - Yes, I can implement (or help). + - Yes, I can review/test. + - No, just suggesting.