From 1f75323a06a37d6cbe699b4a439247fbf7250813 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Sep 2025 00:27:38 +0000 Subject: [PATCH 1/3] Initial plan From ca575ed7658345c702f45f970ff5bc250634b9dd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Sep 2025 00:35:34 +0000 Subject: [PATCH 2/3] Create GitHub issue templates for community feedback and collaboration Co-authored-by: DutchmanNL <7318445+DutchmanNL@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yml | 184 ++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 11 ++ .../documentation_automation.yml | 178 +++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 117 +++++++++++ CHANGELOG.md | 6 + tests/test-automated-templates.sh | 95 +++++++++ 6 files changed, 591 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/documentation_automation.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 0000000..1022b07 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,184 @@ +name: šŸ› Bug Report +description: Report issues with the current template or setup +title: "[BUG] " +labels: ["bug"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + ## šŸ› Bug Report for ioBroker Copilot Instructions + + Thank you for reporting an issue! This helps us improve the template and setup process for the ioBroker community. + + - type: checkboxes + id: prerequisites + attributes: + label: Prerequisites + description: Please confirm you have done the following + options: + - label: I have searched existing issues to ensure this is not a duplicate + required: true + - label: I have followed the setup guide and troubleshooting steps + required: true + - label: This issue is related to the ioBroker Copilot Instructions template or setup process + required: true + + - type: dropdown + id: issue-type + attributes: + label: Issue Type + description: What type of issue are you experiencing? + options: + - Template Issue - Problem with template content or structure + - Setup Issue - Problem during installation or configuration + - Bug - Unexpected behavior or error + - Question - Need help understanding something + - Documentation Issue - Unclear or missing documentation + - Automation Issue - Problem with automated updates or scripts + default: 0 + validations: + required: true + + - type: dropdown + id: severity + attributes: + label: Severity + description: How severe is this issue? + options: + - Low - Minor inconvenience, has workaround + - Medium - Affects functionality but not critical + - High - Significant impact on adapter development + - Critical - Completely blocks adapter development + default: 1 + validations: + required: true + + - type: textarea + id: current-behavior + attributes: + label: Current Behavior + description: Describe what is happening now + placeholder: | + Describe the current behavior: + - What are you trying to do? + - What happens instead of what you expect? + - Any error messages or unexpected outputs? + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: Describe what you expected to happen + placeholder: | + Describe what should happen: + - What did you expect to occur? + - How should it work based on documentation? + - What would be the ideal outcome? + validations: + required: true + + - type: textarea + id: reproduction-steps + attributes: + label: Steps to Reproduce + description: Provide detailed steps to reproduce the issue + placeholder: | + 1. Go to... + 2. Click on... + 3. Run command... + 4. See error... + validations: + required: true + + - type: dropdown + id: environment-github-copilot + attributes: + label: GitHub Copilot Status + description: Is GitHub Copilot properly set up in your repository? + options: + - "Yes - Copilot is active and working" + - "No - Copilot is not set up" + - "Partial - Copilot works sometimes" + - "Unknown - Not sure if it's working" + default: 0 + validations: + required: true + + - type: input + id: template-version + attributes: + label: Template Version + description: What version of the template are you using? + placeholder: "e.g., 0.4.0 or 'latest' or 'unknown'" + validations: + required: true + + - type: dropdown + id: environment-os + attributes: + label: Operating System + description: What operating system are you using? + options: + - Windows + - macOS + - Linux + - Other (please specify in additional context) + validations: + required: true + + - type: input + id: environment-node + attributes: + label: Node.js Version + description: What version of Node.js are you using? (if applicable) + placeholder: "e.g., 18.x, 20.x, or N/A" + + - type: textarea + id: error-logs + attributes: + label: Error Messages/Logs + description: Include any relevant error messages, logs, or console output + placeholder: | + Paste error messages or logs here: + ``` + error log content here + ``` + render: text + + - type: textarea + id: configuration + attributes: + label: Configuration Details + description: Relevant configuration or setup details + placeholder: | + Include relevant details such as: + - Relevant sections from .github/copilot-instructions.md + - Package.json dependencies + - IDE/editor being used + - Any custom configurations + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Any other context about the problem + placeholder: | + Additional information: + - Screenshots if applicable + - Links to your repository (if public) + - Timeline of when the issue started + - Any recent changes made + + - type: checkboxes + id: workaround + attributes: + label: Workaround + description: Have you found any workarounds? + options: + - label: I have found a temporary workaround (please describe in additional context) + - label: I have not found any workaround + - label: I need help finding a workaround \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..7b2a2d1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: true +contact_links: + - name: šŸ’¬ Community Discussion + url: https://github.com/DrozmotiX/ioBroker-Copilot-Instructions/discussions + about: Join discussions about best practices, share experiences, and collaborate on improvements + - name: šŸŒ ioBroker Community Forum + url: https://forum.iobroker.net/topic/82238/ki-trifft-iobroker-ein-gemeinsames-abenteuer + about: Connect with the broader ioBroker community for adapter development collaboration + - name: šŸ“– Documentation + url: https://github.com/DrozmotiX/ioBroker-Copilot-Instructions/tree/main/docs + about: Complete setup guides, automated updates documentation, and best practices \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/documentation_automation.yml b/.github/ISSUE_TEMPLATE/documentation_automation.yml new file mode 100644 index 0000000..5ea4686 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation_automation.yml @@ -0,0 +1,178 @@ +name: šŸ“š Documentation & Automation Improvement +description: Suggest improvements to documentation, setup processes, or automation +title: "[DOCS/AUTO] " +labels: ["documentation", "automation", "enhancement"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + ## šŸ“š Documentation & Automation Improvement + + Thank you for suggesting improvements! This template helps us enhance documentation, setup processes, and automation to better serve the ioBroker community. + + - type: checkboxes + id: prerequisites + attributes: + label: Prerequisites + description: Please confirm you have reviewed existing resources + options: + - label: I have searched existing issues to ensure this is not a duplicate + required: true + - label: I have reviewed the current documentation and setup guides + required: true + - label: This improvement would benefit the broader ioBroker adapter development community + required: true + + - type: dropdown + id: improvement-type + attributes: + label: Improvement Type + description: What type of improvement are you suggesting? + options: + - Documentation - Improve existing docs or add missing docs + - Setup Process - Improve installation or configuration steps + - Automation - Improve scripts, tools, or automated processes + - Testing - Improve validation or testing procedures + - User Experience - Improve usability of templates or tools + - Community Resources - Improve community support materials + - Other (please specify) + default: 0 + validations: + required: true + + - type: dropdown + id: target-audience + attributes: + label: Target Audience + description: Who would benefit most from this improvement? + options: + - New ioBroker adapter developers + - Experienced adapter developers + - Template maintainers + - Community contributors + - All users + default: 4 + validations: + required: true + + - type: textarea + id: current-situation + attributes: + label: Current Situation + description: Describe the current state and what needs improvement + placeholder: | + Describe what exists now: + - What documentation/automation currently exists? + - What are the current pain points or limitations? + - What makes the current approach difficult or confusing? + validations: + required: true + + - type: textarea + id: proposed-improvement + attributes: + label: Proposed Improvement + description: Describe your suggested improvement in detail + placeholder: | + Describe your proposed improvement: + - What specifically should be improved or added? + - How would this make things better? + - What would the improved workflow/documentation look like? + validations: + required: true + + - type: textarea + id: examples-references + attributes: + label: Examples & References + description: Provide examples or references that support your suggestion + placeholder: | + Supporting examples: + - Links to good documentation examples from other projects + - Screenshots of confusing sections (if applicable) + - Examples from the ioBroker community + - References to best practices + + - type: dropdown + id: priority-impact + attributes: + label: Priority & Impact + description: How would you rate the impact and priority of this improvement? + options: + - Low Impact - Nice to have improvement + - Medium Impact - Would help some users significantly + - High Impact - Would help most users significantly + - Critical Impact - Essential for community success + default: 1 + validations: + required: true + + - type: checkboxes + id: improvement-areas + attributes: + label: Specific Areas for Improvement + description: Select all areas that would benefit from this improvement + options: + - label: Setup and installation process + - label: Template integration steps + - label: GitHub Copilot configuration + - label: Troubleshooting and error handling + - label: Version management and updates + - label: Testing and validation procedures + - label: Community contribution guidelines + - label: Examples and use cases + - label: API/script documentation + - label: Automated tools and scripts + + - type: textarea + id: implementation-suggestions + attributes: + label: Implementation Suggestions + description: If you have ideas about how to implement this improvement + placeholder: | + Implementation ideas: + - Changes to specific documentation files + - New documentation sections needed + - Script or automation improvements + - Process changes + - Tools or resources that could help + + - type: textarea + id: success-criteria + attributes: + label: Success Criteria + description: How would we know this improvement was successful? + placeholder: | + Success would be measured by: + - Reduced confusion or support requests + - Faster setup/onboarding for new users + - More successful template integrations + - Better community engagement + - Specific metrics or feedback + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Any other information that would help with this improvement + placeholder: | + Additional information: + - User feedback or common questions you've seen + - Specific scenarios where current approach fails + - Timeline considerations + - Resources you could provide to help + + - type: checkboxes + id: contribution + attributes: + label: Contribution + description: How can you help with this improvement? + options: + - label: I can help write or review documentation + - label: I can help test the improved process + - label: I can provide feedback during development + - label: I can help with implementation (scripts/automation) + - label: I can help gather community feedback + - label: I can provide examples or use cases \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..fa86a8d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,117 @@ +name: šŸš€ Feature Request +description: Suggest new functionality for the ioBroker Copilot Instructions template +title: "[FEATURE] " +labels: ["enhancement", "feature-request"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + ## šŸš€ Feature Request for ioBroker Copilot Instructions Template + + Thank you for suggesting new functionality! This template helps maintainers understand and explore new features that could benefit the ioBroker community. + + - type: checkboxes + id: prerequisites + attributes: + label: Prerequisites + description: Please confirm you have reviewed existing functionality + options: + - label: I have searched existing issues and discussions to ensure this is not a duplicate + required: true + - label: I have reviewed the current template documentation and features + required: true + - label: This feature would benefit the broader ioBroker adapter development community + required: true + + - type: dropdown + id: feature-category + attributes: + label: Feature Category + description: What type of functionality are you requesting? + options: + - Template Instructions Enhancement + - GitHub Copilot Integration Improvement + - Automation & Tooling + - Documentation & Setup + - Version Management + - Testing & Validation + - Other (please specify) + default: 0 + validations: + required: true + + - type: textarea + id: feature-description + attributes: + label: Feature Description + description: Describe the new functionality you'd like to see + placeholder: | + Clearly describe: + - What functionality you want added + - Why this would be valuable + - How it would improve adapter development + validations: + required: true + + - type: textarea + id: use-cases + attributes: + label: Use Cases & Examples + description: Provide specific examples of how this feature would be used + placeholder: | + Examples: + - As an adapter developer, I want [functionality] so that [benefit] + - When [scenario], this feature would help by [improvement] + - Current workflow: [current process] + - Improved workflow with this feature: [new process] + + - type: textarea + id: proposed-solution + attributes: + label: Proposed Solution + description: If you have ideas for how this could be implemented + placeholder: | + Suggestions for implementation: + - Template changes needed + - New sections or instructions + - Integration with existing tools + - Examples of similar functionality elsewhere + + - type: dropdown + id: priority + attributes: + label: Priority Level + description: How important is this feature for your adapter development? + options: + - Low - Nice to have improvement + - Medium - Would significantly improve workflow + - High - Essential for effective adapter development + - Critical - Blocking current development efforts + default: 1 + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Any other information that might help understand this request + placeholder: | + Additional information: + - Links to relevant ioBroker documentation + - Examples from other projects + - Screenshots or mockups + - Technical considerations + + - type: checkboxes + id: contribution + attributes: + label: Contribution + description: Are you willing to help implement this feature? + options: + - label: I'm willing to help test this feature when implemented + - label: I'm willing to provide feedback during development + - label: I'm willing to help with documentation + - label: I'm willing to help with implementation (code/templates) \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b8601e1..980218f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## **WORK IN PROGRESS** +- (copilot) **NEW**: Created GitHub issue templates for repository feedback and community collaboration (Fixes #29) +- (copilot) **NEW**: Added feature request template for exploring new functionality with structured community input +- (copilot) **NEW**: Added comprehensive bug report template with type selection (template issues, setup issues, bugs, questions) +- (copilot) **NEW**: Added documentation and automation improvement template for community-driven enhancements +- (copilot) **NEW**: Added issue template configuration with community links (discussions, forum, documentation) +- (copilot) **TESTING**: Extended automated test suite to validate GitHub issue template structure and YAML syntax - (copilot) **NEW**: Added automated template update system using GitHub Copilot-powered issue templates (Fixes #24) - (copilot) **NEW**: Created copy-paste template for quick automated template validation and updates - (copilot) **NEW**: Added comprehensive automated updates documentation with step-by-step workflows diff --git a/tests/test-automated-templates.sh b/tests/test-automated-templates.sh index 13221cc..a08ff51 100755 --- a/tests/test-automated-templates.sh +++ b/tests/test-automated-templates.sh @@ -122,6 +122,101 @@ echo -e "${GREEN}āœ… PASS${NC}" echo " Testing templates avoid hardcoded versions... " echo -e "${GREEN}āœ… PASS${NC}" +# Test GitHub issue templates +echo -e "\nšŸ“ Testing GitHub Issue Templates..." + +# Test that issue template directory exists +if [[ -d "$REPO_ROOT/.github/ISSUE_TEMPLATE" ]]; then + echo " Testing GitHub issue template directory exists... ${GREEN}āœ… PASS${NC}" +else + echo " Testing GitHub issue template directory exists... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 +fi + +# Test feature request template +if [[ -f "$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml" ]]; then + echo " Testing feature request template exists... ${GREEN}āœ… PASS${NC}" + + # Test YAML validity + if python3 -c "import yaml; yaml.safe_load(open('$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml'))" 2>/dev/null; then + echo " Testing feature request template YAML validity... ${GREEN}āœ… PASS${NC}" + else + echo " Testing feature request template YAML validity... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 + fi + + # Test content + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml" "Feature Request" "Feature request template has correct title" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml" "enhancement" "Feature request template has enhancement label" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml" "ioBroker" "Feature request template mentions ioBroker" +else + echo " Testing feature request template exists... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 +fi + +# Test bug report template +if [[ -f "$REPO_ROOT/.github/ISSUE_TEMPLATE/bug_report.yml" ]]; then + echo " Testing bug report template exists... ${GREEN}āœ… PASS${NC}" + + # Test YAML validity + if python3 -c "import yaml; yaml.safe_load(open('$REPO_ROOT/.github/ISSUE_TEMPLATE/bug_report.yml'))" 2>/dev/null; then + echo " Testing bug report template YAML validity... ${GREEN}āœ… PASS${NC}" + else + echo " Testing bug report template YAML validity... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 + fi + + # Test content and selection options + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/bug_report.yml" "Bug Report" "Bug report template has correct title" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/bug_report.yml" "Template Issue" "Bug report template has template issue option" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/bug_report.yml" "Setup Issue" "Bug report template has setup issue option" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/bug_report.yml" "Question" "Bug report template has question option" +else + echo " Testing bug report template exists... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 +fi + +# Test documentation/automation template +if [[ -f "$REPO_ROOT/.github/ISSUE_TEMPLATE/documentation_automation.yml" ]]; then + echo " Testing documentation/automation template exists... ${GREEN}āœ… PASS${NC}" + + # Test YAML validity + if python3 -c "import yaml; yaml.safe_load(open('$REPO_ROOT/.github/ISSUE_TEMPLATE/documentation_automation.yml'))" 2>/dev/null; then + echo " Testing documentation/automation template YAML validity... ${GREEN}āœ… PASS${NC}" + else + echo " Testing documentation/automation template YAML validity... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 + fi + + # Test content + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/documentation_automation.yml" "Documentation.*Automation" "Documentation template has correct title" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/documentation_automation.yml" "documentation" "Documentation template has documentation label" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/documentation_automation.yml" "automation" "Documentation template has automation label" +else + echo " Testing documentation/automation template exists... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 +fi + +# Test config file +if [[ -f "$REPO_ROOT/.github/ISSUE_TEMPLATE/config.yml" ]]; then + echo " Testing issue template config exists... ${GREEN}āœ… PASS${NC}" + + # Test YAML validity + if python3 -c "import yaml; yaml.safe_load(open('$REPO_ROOT/.github/ISSUE_TEMPLATE/config.yml'))" 2>/dev/null; then + echo " Testing issue template config YAML validity... ${GREEN}āœ… PASS${NC}" + else + echo " Testing issue template config YAML validity... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 + fi + + # Test content + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/config.yml" "Community Discussion" "Config file has community discussion link" + test_template_content "$REPO_ROOT/.github/ISSUE_TEMPLATE/config.yml" "ioBroker Community Forum" "Config file has ioBroker forum link" +else + echo " Testing issue template config exists... ${RED}āŒ FAIL${NC}" + EXIT_CODE=1 +fi + # Clean up rm -rf "$TEMP_DIR" From 90c3f46e289f90e1dd25cb6c7cfff2e35e8312d0 Mon Sep 17 00:00:00 2001 From: Rafal Drozda Date: Fri, 19 Sep 2025 02:44:18 +0200 Subject: [PATCH 3/3] Update tests/test-automated-templates.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tests/test-automated-templates.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test-automated-templates.sh b/tests/test-automated-templates.sh index a08ff51..84eba71 100755 --- a/tests/test-automated-templates.sh +++ b/tests/test-automated-templates.sh @@ -138,7 +138,7 @@ if [[ -f "$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml" ]]; then echo " Testing feature request template exists... ${GREEN}āœ… PASS${NC}" # Test YAML validity - if python3 -c "import yaml; yaml.safe_load(open('$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml'))" 2>/dev/null; then + if python3 -c "import yaml, sys; yaml.safe_load(open(sys.argv[1]))" "$REPO_ROOT/.github/ISSUE_TEMPLATE/feature_request.yml" 2>/dev/null; then echo " Testing feature request template YAML validity... ${GREEN}āœ… PASS${NC}" else echo " Testing feature request template YAML validity... ${RED}āŒ FAIL${NC}"