From 3f4da913bf618fad63f322f62f1b11e7a7b38412 Mon Sep 17 00:00:00 2001 From: Karan Gathani Date: Fri, 31 Jan 2025 11:09:05 -0800 Subject: [PATCH 1/2] Add some issue template --- .github/ISSUE_TEMPLATE/bug_report.yml | 173 ++++++++++++++++++++ .github/ISSUE_TEMPLATE/documentation.yml | 141 ++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 180 +++++++++++++++++++++ 3 files changed, 494 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/documentation.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..99b2a6552 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,173 @@ +name: Bug Report +description: Report a bug in Shiny for Python +title: "[Bug]: " +labels: ["bug", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to file a bug report! Please fill out this form as completely as possible. + + Providing a **Minimal Reproducible Example** is crucial for us to quickly understand and fix the issue. + Please take the time to create a minimal app that demonstrates the bug. Templates are provided in the "Minimal Reproducible Example" section. + + **Please ensure you have searched for similar issues before submitting.** Duplicates slow down the process of fixing bugs. + + - type: dropdown + id: component + attributes: + label: Component + description: Which part of Shiny for Python is affected? + options: + - UI Components (ui.*) + - Server Logic (server.*) + - Reactive Programming + - Input Bindings + - Output Bindings + - Session Management + - App Deployment + - Documentation + - Installation + - Other + validations: + required: true + + - type: dropdown + id: severity + attributes: + label: Severity + description: How severe is this issue? + options: + - P0 - Critical (App crashes/unusable, blocking core functionality) + - P1 - High (Major feature broken, significant impact on usability) + - P2 - Medium (Feature works with workaround, noticeable impact) + - P3 - Low (Minor inconvenience, cosmetic issue, or documentation suggestion) + validations: + required: true + + - type: input + id: version + attributes: + label: Shiny Version + description: What version of Shiny for Python are you using? (Check `shiny --version` in your terminal) + placeholder: ex. 1.0.2 + validations: + required: true + + - type: input + id: python-version + attributes: + label: Python Version + description: What version of Python are you using? (Check `python --version` in your terminal) + placeholder: ex. 3.10.6 + validations: + required: true + + - type: textarea + id: minimal-example + attributes: + label: Minimal Reproducible Example + description: | + Please provide a *minimal*, self-contained Shiny app that clearly demonstrates the issue. + This is **the most important part** of your bug report. The easier it is for us to reproduce the bug, the faster we can fix it. + + * **Minimal:** Remove any code not directly related to the bug. + * **Reproducible:** We should be able to copy and paste your code and run it to see the bug. + * **Self-contained:** Include all necessary code in one file if possible. + + Templates: + + ```python + from shiny import App, render, ui + + app_ui = ui.page_fluid( + # Your UI code here + ) + + def server(input, output, session): + # Your server code here + pass + + app = App(app_ui, server) + ``` + render: python + validations: + required: true + + - type: textarea + id: current-behavior + attributes: + label: Current Behavior + description: A clear and concise description of what you are seeing happen. Be specific. + placeholder: When I click the button labeled "Update Plot", the app freezes and I see a spinner, but the plot does not update. + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: A clear and concise description of what you expected to happen instead. + placeholder: I expected the plot to update with new data points after clicking the "Update Plot" button, without freezing the app. + validations: + required: true + + - type: textarea + id: error-messages + attributes: + label: Error Messages (if any) + description: Please copy and paste any relevant error messages or tracebacks. If there are no error messages, you can leave this blank. + render: shell + + - type: textarea + id: environment + attributes: + label: Environment Information + description: | + Please provide details about your development/runtime environment. This information is very helpful for debugging. + + **Please fill in the details below:** + value: | + - Operating System: [e.g., Windows 10, macOS 13.4, Ubuntu 20.04] + - Browser: [e.g., Chrome 114, Firefox 115, Safari 16] + - Key Dependencies (from `pip freeze` or `conda list`): + - shiny: [e.g., 1.0.2] + - pandas: [e.g., 2.0.0] + - numpy: [e.g., 1.23.0] + - plotly: [e.g., 5.15.0] + - matplotlib: [e.g., 3.7.0] + - any other relevant packages: [e.g., `requests==2.28.1`] + render: markdown + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: | + Add any other context or information about the problem here. This could include: + - Browser console logs (if relevant to UI issues) + - Screenshots or screen recordings + - Performance profiles + - Specific steps to reproduce the issue if your minimal example is still complex. + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our Code of Conduct. Please read it [link to Code of Conduct]. + options: + - label: I agree to follow this project's Code of Conduct + required: true + + - type: checkboxes + id: checks + attributes: + label: Final Checks + description: Before submitting, please make sure you've completed these checks to help us resolve your issue faster. + options: + - label: I have searched for similar issues in the repository to avoid duplicates. + - label: I have tested with the latest version of Shiny for Python to ensure the bug still exists. + - label: I have included a minimal reproducible example that clearly demonstrates the issue. + - label: I have filled out all required fields in this issue template to the best of my ability. diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml new file mode 100644 index 000000000..a9440c269 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -0,0 +1,141 @@ +name: Documentation Issue +description: Report a documentation issue or suggest improvements +title: "[Docs]: " +labels: ["documentation", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for helping improve Shiny for Python's documentation! Your contributions are highly valued. + + Please provide as much detail as possible about the documentation issue or suggestion. + **Even if a field is marked as optional, providing the information is highly encouraged** to help us understand and address the issue effectively. + + - type: dropdown + id: doc-type + attributes: + label: Documentation Type + description: What type of documentation does this issue relate to? + options: + - API Reference (Function/Class documentation) + - Tutorials/Guides (Longer, step-by-step instructions) + - Examples Gallery (Code examples) + - Getting Started (Installation, basic usage) + - Conceptual Guides (Explanations of core concepts) + - Function Docstrings (Documentation within the Python code) + - Code Comments + - Installation Instructions + - Deployment Guides + - Other + validations: + required: true + + - type: input + id: doc-location + attributes: + label: Documentation Location + description: Where is the documentation you're referring to? Please be as specific as possible. (URL or file path if you know it) + placeholder: "e.g., https://shiny.rstudio.com/py/docs/reactive-programming.html or `shiny/ui/__init__.py`" + validations: + required: true + + - type: dropdown + id: issue-type + attributes: + label: Issue Type + description: What kind of documentation issue is this? + options: + - Missing Documentation (Something is not documented) + - Incorrect Information (Documentation is factually wrong) + - Unclear Explanation (Difficult to understand) + - Outdated Content (Documentation is no longer current) + - Broken Links/References + - Code Example Issue (Example doesn't work or is unclear) + - Grammar/Typo + - Translation Issue (For translated documentation) + - Enhancement Suggestion (Improve clarity, add detail, etc.) + - Other + validations: + required: true + + - type: textarea + id: current-content + attributes: + label: Current Content (Optional, but helpful) + description: If applicable, please paste the relevant section of the current documentation. This helps us quickly locate the issue. + placeholder: | + Please paste the relevant current documentation text here... + (Leave blank if not directly applicable or for missing documentation issues) + + - type: textarea + id: suggested-content + attributes: + label: Suggested Changes (Highly encouraged) + description: | + What changes would you like to see? Please be as specific as possible. + If you have a suggested text or code, please provide it here. + + For code examples, use markdown code blocks: + + ```python + from shiny import App, ui + # Your example code here + ``` + placeholder: | + Please provide your suggested improvements or new content here. + (If you have a specific wording or code example in mind, please include it here) + + - type: textarea + id: motivation + attributes: + label: Motivation (Optional, but helpful) + description: Why is this change needed? How will it help users of Shiny for Python? Explaining the impact is very helpful. + placeholder: | + Explain why this documentation improvement would be valuable... + (e.g., "This clarification will prevent users from misunderstanding X", "This example will make it easier to learn Y") + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context, screenshots, screen recordings, or details that might be helpful in understanding the documentation issue. + + - type: input + id: shiny-version + attributes: + label: Shiny Version (Optional, if applicable) + description: Which version of Shiny for Python are you using? (Only relevant if the documentation issue is version-specific) + placeholder: ex. 1.0.2 + + - type: checkboxes + id: preliminary-checks + attributes: + label: Preliminary Checks + description: Please confirm the following before submitting. + options: + - label: I have searched existing issues to avoid duplicate documentation requests. + required: true + - label: I have checked the latest documentation on the website/main branch to ensure this hasn't already been addressed. + required: true + - label: This issue is clearly a documentation issue or suggestion, and not a bug report or feature request. + required: true + + - type: checkboxes + id: contribution + attributes: + label: Contribution (Optional) + description: Would you be interested in helping with this documentation improvement? Your help is welcome! + options: + - label: I would be willing to submit a pull request with these changes + required: false + - label: I would be willing to review proposed changes + required: false + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our Code of Conduct. You can find it [link to Code of Conduct - Replace with actual link]. + options: + - label: I agree to follow this project's Code of Conduct + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..b18c1cce3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,180 @@ +name: Feature Request +description: Suggest an idea for Shiny for Python +title: "[Feature]: " +labels: ["enhancement", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to suggest a new feature for Shiny for Python! We appreciate your input and ideas to make Shiny even better. + + Please fill out this form as completely as possible. **Even if a field is marked as optional, providing the information is highly encouraged** to help us understand your request fully. + + - type: dropdown + id: feature-category + attributes: + label: Feature Category + description: What area of Shiny for Python would this feature enhance? + options: + - UI Components + - Reactive Programming + - Input Handling + - Output Handling + - App Deployment + - Development Tools + - Performance + - Testing Framework + - Accessibility + - Integration with Other Libraries + - Other + validations: + required: true + + - type: dropdown + id: feature-scope + attributes: + label: Feature Scope + description: How would you categorize the scope of this feature? + options: + - Major Feature (Significant new functionality, new component/system) + - Minor Enhancement (Improvement to an existing feature, adds small capabilities) + - Quality of Life Improvement (Small, user-experience focused improvement) + - Experimental Feature (Novel idea, exploratory concept) + validations: + required: true + + - type: textarea + id: problem-description + attributes: + label: Problem Description + description: What problem does this feature solve? Why is this feature needed? Please describe the user pain point or gap in current functionality. + placeholder: | + As a Shiny for Python user, I'm always frustrated when [...] because [...]. + + Currently, I have to workaround this by doing [...], which is not ideal because [...]. + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: Proposed Solution + description: Describe the feature you are proposing. What should it do? How should it work from a user's perspective? + placeholder: | + I would like Shiny for Python to have a new feature that [...]. + + A clear and concise description of what you want to happen. + + Potential API design (if applicable): + ```python + from shiny import ui + + # Example of how the new feature might be used in code + ui.new_component(...) + ``` + validations: + required: true + + - type: textarea + id: alternative-solutions + attributes: + label: Alternative Solutions (Optional, but helpful) + description: Have you considered alternative solutions or workarounds? If so, please describe them and explain why they are less suitable than your proposed solution. + placeholder: | + I've considered alternative solutions like [...] and [...]. + + However, these alternatives are less suitable because [...]. My proposed solution is better because [...]. + + - type: textarea + id: example-usage + attributes: + label: Example Usage (Optional, but highly encouraged) + description: Provide a code example demonstrating how this feature would be used in a Shiny app. The more concrete the example, the better. + placeholder: | + ```python + from shiny import App, ui + + app_ui = ui.page_fluid( + # Example usage of the proposed feature + ui.your_new_feature( + param1="value1", + param2="value2" + ) + ) + ``` + render: python + + - type: textarea + id: expected-impact + attributes: + label: Expected Impact (Optional, but helpful) + description: How would this feature benefit the Shiny for Python community and its users? Who would use it and in what scenarios? + placeholder: | + - This feature would be particularly useful for users who want to [...]. + - It would enable new use cases such as [...]. + - It would improve the development experience by making it easier to [...]. + - It would benefit users by [...]. + + - type: textarea + id: implementation-considerations + attributes: + label: Implementation Considerations (Optional) + description: Do you have any thoughts on how this feature could be implemented? (e.g., technical considerations, potential challenges, dependencies, impact on existing features). This is helpful but not required. + placeholder: | + Some implementation considerations might include: + - Technical challenges: [...] + - Potential dependencies: [...] + - Impact on existing features: [...] + + - type: dropdown + id: implementation-complexity + attributes: + label: Estimated Implementation Complexity (Optional) + description: Based on your understanding, how complex do you think this feature would be to implement? (This is just an estimate and helps with prioritization). + options: + - Simple (Few files, minimal changes) + - Moderate (Multiple files, some complexity) + - Complex (Significant changes, careful design needed) + - Unknown + # validations: # Removed required validation + # required: true + + - type: checkboxes + id: preliminary-checks + attributes: + label: Preliminary Checks + description: Please confirm the following before submitting your feature request. + options: + - label: I have searched existing issues to avoid duplicate feature requests. + required: true + - label: I believe this feature would be genuinely useful to a broader range of Shiny for Python users. + required: true + - label: I am willing to participate in discussions about this feature request, answer questions, and provide further clarification if needed. + required: true + + - type: dropdown + id: contribution-interest + attributes: + label: Implementation Interest (Optional) + description: Are you interested in contributing to the implementation of this feature? Your contribution is welcome! + options: + - Yes, I would like to implement this feature myself (or with guidance). + - Yes, I can help with reviewing and testing if someone else implements it. + - No, I am just suggesting the feature at this time. + # validations: # Removed required validation + # required: true + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context, screenshots, mockups, or examples that might be helpful in understanding and evaluating this feature request. + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this feature request, you agree to follow our Code of Conduct. You can find it [link to Code of Conduct - Replace with actual link]. + options: + - label: I agree to follow this project's Code of Conduct + required: true From a5420b03bc686ff5794774d8b8b9cca86e180a71 Mon Sep 17 00:00:00 2001 From: Karan Gathani Date: Tue, 11 Feb 2025 09:25:28 -0800 Subject: [PATCH 2/2] make issue templates more minimalistic --- .github/ISSUE_TEMPLATE/bug_report.yml | 125 ++++------------- .github/ISSUE_TEMPLATE/documentation.yml | 142 ++++++------------- .github/ISSUE_TEMPLATE/feature_request.yml | 151 +++++---------------- 3 files changed, 110 insertions(+), 308 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 99b2a6552..30faa5d49 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,31 +1,25 @@ name: Bug Report description: Report a bug in Shiny for Python title: "[Bug]: " -labels: ["bug", "needs-triage"] +labels: ["bug"] body: - type: markdown attributes: value: | - Thanks for taking the time to file a bug report! Please fill out this form as completely as possible. - - Providing a **Minimal Reproducible Example** is crucial for us to quickly understand and fix the issue. - Please take the time to create a minimal app that demonstrates the bug. Templates are provided in the "Minimal Reproducible Example" section. - - **Please ensure you have searched for similar issues before submitting.** Duplicates slow down the process of fixing bugs. + 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 for Python is affected? + description: Which part of Shiny is affected? options: - - UI Components (ui.*) - - Server Logic (server.*) + - UI (ui.*) + - Server (server.*) - Reactive Programming - - Input Bindings - - Output Bindings + - Input/Output Bindings - Session Management - - App Deployment + - Deployment - Documentation - Installation - Other @@ -36,12 +30,11 @@ body: id: severity attributes: label: Severity - description: How severe is this issue? options: - - P0 - Critical (App crashes/unusable, blocking core functionality) - - P1 - High (Major feature broken, significant impact on usability) - - P2 - Medium (Feature works with workaround, noticeable impact) - - P3 - Low (Minor inconvenience, cosmetic issue, or documentation suggestion) + - P0 - Critical (crash/unusable) + - P1 - High (major feature broken) + - P2 - Medium (workaround exists) + - P3 - Low (minor inconvenience) validations: required: true @@ -49,8 +42,8 @@ body: id: version attributes: label: Shiny Version - description: What version of Shiny for Python are you using? (Check `shiny --version` in your terminal) - placeholder: ex. 1.0.2 + description: '`shiny --version`' + placeholder: ex. 1.2.1 validations: required: true @@ -58,7 +51,7 @@ body: id: python-version attributes: label: Python Version - description: What version of Python are you using? (Check `python --version` in your terminal) + description: '`python --version`' placeholder: ex. 3.10.6 validations: required: true @@ -68,26 +61,16 @@ body: attributes: label: Minimal Reproducible Example description: | - Please provide a *minimal*, self-contained Shiny app that clearly demonstrates the issue. - This is **the most important part** of your bug report. The easier it is for us to reproduce the bug, the faster we can fix it. - - * **Minimal:** Remove any code not directly related to the bug. - * **Reproducible:** We should be able to copy and paste your code and run it to see the bug. - * **Self-contained:** Include all necessary code in one file if possible. + A *minimal*, self-contained app demonstrating the issue. Remove unrelated code. We should be able to copy, paste, and run it. - Templates: + Template: ```python from shiny import App, render, ui - app_ui = ui.page_fluid( - # Your UI code here - ) - + app_ui = ui.page_fluid() def server(input, output, session): - # Your server code here pass - app = App(app_ui, server) ``` render: python @@ -95,79 +78,31 @@ body: required: true - type: textarea - id: current-behavior - attributes: - label: Current Behavior - description: A clear and concise description of what you are seeing happen. Be specific. - placeholder: When I click the button labeled "Update Plot", the app freezes and I see a spinner, but the plot does not update. - validations: - required: true - - - type: textarea - id: expected-behavior + id: behavior attributes: - label: Expected Behavior - description: A clear and concise description of what you expected to happen instead. - placeholder: I expected the plot to update with new data points after clicking the "Update Plot" button, without freezing the app. + 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 + required: true - type: textarea - id: error-messages + id: errors attributes: label: Error Messages (if any) - description: Please copy and paste any relevant error messages or tracebacks. If there are no error messages, you can leave this blank. + description: Copy and paste any errors/tracebacks. render: shell - type: textarea id: environment attributes: - label: Environment Information + label: Environment description: | - Please provide details about your development/runtime environment. This information is very helpful for debugging. - - **Please fill in the details below:** - value: | - - Operating System: [e.g., Windows 10, macOS 13.4, Ubuntu 20.04] - - Browser: [e.g., Chrome 114, Firefox 115, Safari 16] - - Key Dependencies (from `pip freeze` or `conda list`): - - shiny: [e.g., 1.0.2] - - pandas: [e.g., 2.0.0] - - numpy: [e.g., 1.23.0] - - plotly: [e.g., 5.15.0] - - matplotlib: [e.g., 3.7.0] - - any other relevant packages: [e.g., `requests==2.28.1`] + - 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 - - - type: textarea - id: additional-context - attributes: - label: Additional Context - description: | - Add any other context or information about the problem here. This could include: - - Browser console logs (if relevant to UI issues) - - Screenshots or screen recordings - - Performance profiles - - Specific steps to reproduce the issue if your minimal example is still complex. - - - type: checkboxes - id: terms - attributes: - label: Code of Conduct - description: By submitting this issue, you agree to follow our Code of Conduct. Please read it [link to Code of Conduct]. - options: - - label: I agree to follow this project's Code of Conduct - required: true - - - type: checkboxes - id: checks - attributes: - label: Final Checks - description: Before submitting, please make sure you've completed these checks to help us resolve your issue faster. - options: - - label: I have searched for similar issues in the repository to avoid duplicates. - - label: I have tested with the latest version of Shiny for Python to ensure the bug still exists. - - label: I have included a minimal reproducible example that clearly demonstrates the issue. - - label: I have filled out all required fields in this issue template to the best of my ability. diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml index a9440c269..e68245571 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yml +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -1,31 +1,29 @@ name: Documentation Issue -description: Report a documentation issue or suggest improvements +description: Report an issue or suggest improvements to the documentation. title: "[Docs]: " -labels: ["documentation", "needs-triage"] +labels: ["documentation"] body: - type: markdown attributes: value: | - Thanks for helping improve Shiny for Python's documentation! Your contributions are highly valued. - - Please provide as much detail as possible about the documentation issue or suggestion. - **Even if a field is marked as optional, providing the information is highly encouraged** to help us understand and address the issue effectively. + Thanks for helping improve the documentation! Provide as much detail as possible. - type: dropdown id: doc-type attributes: - label: Documentation Type - description: What type of documentation does this issue relate to? + label: Type + description: What type of documentation? options: - - API Reference (Function/Class documentation) - - Tutorials/Guides (Longer, step-by-step instructions) - - Examples Gallery (Code examples) - - Getting Started (Installation, basic usage) - - Conceptual Guides (Explanations of core concepts) - - Function Docstrings (Documentation within the Python code) + - API Reference + - Tutorials/Guides + - Examples + - Getting Started + - Conceptual Guides + - Function Docstrings - Code Comments - - Installation Instructions - - Deployment Guides + - Installation + - Deployment + - Testing - Other validations: required: true @@ -33,109 +31,59 @@ body: - type: input id: doc-location attributes: - label: Documentation Location - description: Where is the documentation you're referring to? Please be as specific as possible. (URL or file path if you know it) - placeholder: "e.g., https://shiny.rstudio.com/py/docs/reactive-programming.html or `shiny/ui/__init__.py`" + 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 Type - description: What kind of documentation issue is this? + label: Issue + description: What kind of issue? options: - - Missing Documentation (Something is not documented) - - Incorrect Information (Documentation is factually wrong) - - Unclear Explanation (Difficult to understand) - - Outdated Content (Documentation is no longer current) - - Broken Links/References - - Code Example Issue (Example doesn't work or is unclear) - - Grammar/Typo - - Translation Issue (For translated documentation) - - Enhancement Suggestion (Improve clarity, add detail, etc.) + - Missing + - Incorrect + - Unclear + - Outdated + - Broken Links + - Code Example Issue + - Typo/Grammar + - Translation + - Suggestion - Other validations: required: true - - type: textarea - id: current-content - attributes: - label: Current Content (Optional, but helpful) - description: If applicable, please paste the relevant section of the current documentation. This helps us quickly locate the issue. - placeholder: | - Please paste the relevant current documentation text here... - (Leave blank if not directly applicable or for missing documentation issues) - - type: textarea id: suggested-content attributes: - label: Suggested Changes (Highly encouraged) + label: Suggested Changes description: | - What changes would you like to see? Please be as specific as possible. - If you have a suggested text or code, please provide it here. - - For code examples, use markdown code blocks: - + 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 - from shiny import App, ui - # Your example code here + # Example code ``` - placeholder: | - Please provide your suggested improvements or new content here. - (If you have a specific wording or code example in mind, please include it here) + validations: + required: true - type: textarea id: motivation attributes: - label: Motivation (Optional, but helpful) - description: Why is this change needed? How will it help users of Shiny for Python? Explaining the impact is very helpful. - placeholder: | - Explain why this documentation improvement would be valuable... - (e.g., "This clarification will prevent users from misunderstanding X", "This example will make it easier to learn Y") - - - type: textarea - id: additional-context - attributes: - label: Additional Context - description: Add any other context, screenshots, screen recordings, or details that might be helpful in understanding the documentation issue. + 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 (Optional, if applicable) - description: Which version of Shiny for Python are you using? (Only relevant if the documentation issue is version-specific) - placeholder: ex. 1.0.2 - - - type: checkboxes - id: preliminary-checks - attributes: - label: Preliminary Checks - description: Please confirm the following before submitting. - options: - - label: I have searched existing issues to avoid duplicate documentation requests. - required: true - - label: I have checked the latest documentation on the website/main branch to ensure this hasn't already been addressed. - required: true - - label: This issue is clearly a documentation issue or suggestion, and not a bug report or feature request. - required: true - - - type: checkboxes - id: contribution - attributes: - label: Contribution (Optional) - description: Would you be interested in helping with this documentation improvement? Your help is welcome! - options: - - label: I would be willing to submit a pull request with these changes - required: false - - label: I would be willing to review proposed changes - required: false - - - type: checkboxes - id: terms - attributes: - label: Code of Conduct - description: By submitting this issue, you agree to follow our Code of Conduct. You can find it [link to Code of Conduct - Replace with actual link]. - options: - - label: I agree to follow this project's Code of Conduct - required: true + 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 index b18c1cce3..6beae6077 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,31 +1,28 @@ name: Feature Request -description: Suggest an idea for Shiny for Python +description: Suggest an idea for Shiny for Python. title: "[Feature]: " labels: ["enhancement", "needs-triage"] body: - type: markdown attributes: value: | - Thanks for taking the time to suggest a new feature for Shiny for Python! We appreciate your input and ideas to make Shiny even better. - - Please fill out this form as completely as possible. **Even if a field is marked as optional, providing the information is highly encouraged** to help us understand your request fully. + Thanks for suggesting a new feature! Please provide as much detail as possible. - type: dropdown id: feature-category attributes: - label: Feature Category - description: What area of Shiny for Python would this feature enhance? + label: Category + description: What area of Shiny would this enhance? options: - UI Components - Reactive Programming - - Input Handling - - Output Handling - - App Deployment - - Development Tools + - Input/Output + - Deployment + - Dev Tools - Performance - - Testing Framework + - Testing - Accessibility - - Integration with Other Libraries + - Integrations - Other validations: required: true @@ -33,148 +30,70 @@ body: - type: dropdown id: feature-scope attributes: - label: Feature Scope - description: How would you categorize the scope of this feature? + label: Scope options: - - Major Feature (Significant new functionality, new component/system) - - Minor Enhancement (Improvement to an existing feature, adds small capabilities) - - Quality of Life Improvement (Small, user-experience focused improvement) - - Experimental Feature (Novel idea, exploratory concept) + - Major Feature + - Minor Enhancement + - Quality of Life + - Experimental validations: required: true - type: textarea id: problem-description attributes: - label: Problem Description - description: What problem does this feature solve? Why is this feature needed? Please describe the user pain point or gap in current functionality. + label: Problem + description: What problem does this feature solve? Why is it needed? placeholder: | - As a Shiny for Python user, I'm always frustrated when [...] because [...]. - - Currently, I have to workaround this by doing [...], which is not ideal because [...]. + 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: Proposed Solution - description: Describe the feature you are proposing. What should it do? How should it work from a user's perspective? + label: Solution + description: Describe the feature. What should it do? How should it work? placeholder: | - I would like Shiny for Python to have a new feature that [...]. - - A clear and concise description of what you want to happen. - - Potential API design (if applicable): + I would like a feature that... ```python + # Potential API (if applicable) from shiny import ui - - # Example of how the new feature might be used in code ui.new_component(...) ``` validations: required: true - - type: textarea id: alternative-solutions attributes: - label: Alternative Solutions (Optional, but helpful) - description: Have you considered alternative solutions or workarounds? If so, please describe them and explain why they are less suitable than your proposed solution. - placeholder: | - I've considered alternative solutions like [...] and [...]. - - However, these alternatives are less suitable because [...]. My proposed solution is better because [...]. + 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 Usage (Optional, but highly encouraged) - description: Provide a code example demonstrating how this feature would be used in a Shiny app. The more concrete the example, the better. + 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( - # Example usage of the proposed feature - ui.your_new_feature( - param1="value1", - param2="value2" - ) - ) + app_ui = ui.page_fluid(ui.your_new_feature(...)) ``` render: python - type: textarea id: expected-impact attributes: - label: Expected Impact (Optional, but helpful) - description: How would this feature benefit the Shiny for Python community and its users? Who would use it and in what scenarios? - placeholder: | - - This feature would be particularly useful for users who want to [...]. - - It would enable new use cases such as [...]. - - It would improve the development experience by making it easier to [...]. - - It would benefit users by [...]. - - - type: textarea - id: implementation-considerations - attributes: - label: Implementation Considerations (Optional) - description: Do you have any thoughts on how this feature could be implemented? (e.g., technical considerations, potential challenges, dependencies, impact on existing features). This is helpful but not required. - placeholder: | - Some implementation considerations might include: - - Technical challenges: [...] - - Potential dependencies: [...] - - Impact on existing features: [...] - - - type: dropdown - id: implementation-complexity - attributes: - label: Estimated Implementation Complexity (Optional) - description: Based on your understanding, how complex do you think this feature would be to implement? (This is just an estimate and helps with prioritization). - options: - - Simple (Few files, minimal changes) - - Moderate (Multiple files, some complexity) - - Complex (Significant changes, careful design needed) - - Unknown - # validations: # Removed required validation - # required: true - - - type: checkboxes - id: preliminary-checks - attributes: - label: Preliminary Checks - description: Please confirm the following before submitting your feature request. - options: - - label: I have searched existing issues to avoid duplicate feature requests. - required: true - - label: I believe this feature would be genuinely useful to a broader range of Shiny for Python users. - required: true - - label: I am willing to participate in discussions about this feature request, answer questions, and provide further clarification if needed. - required: true - + 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: Implementation Interest (Optional) - description: Are you interested in contributing to the implementation of this feature? Your contribution is welcome! - options: - - Yes, I would like to implement this feature myself (or with guidance). - - Yes, I can help with reviewing and testing if someone else implements it. - - No, I am just suggesting the feature at this time. - # validations: # Removed required validation - # required: true - - - type: textarea - id: additional-context - attributes: - label: Additional Context - description: Add any other context, screenshots, mockups, or examples that might be helpful in understanding and evaluating this feature request. - - - type: checkboxes - id: terms - attributes: - label: Code of Conduct - description: By submitting this feature request, you agree to follow our Code of Conduct. You can find it [link to Code of Conduct - Replace with actual link]. + label: Contribution? (Optional) options: - - label: I agree to follow this project's Code of Conduct - required: true + - Yes, I can implement (or help). + - Yes, I can review/test. + - No, just suggesting.