From aadf1dc27701f20b5ff790d0826f2ea383cf942e Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 14:13:58 +0930 Subject: [PATCH 01/10] Issue Template Config Initial --- .github/ISSUE_TEMPLATE/config.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..0ffc77784 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: MeshCore Discussions + url: https://github.com/meshcore-dev/MeshCore/discussions + about: Ask questions, request help, or discuss ideas before opening an issue. From 8cdf402dee98b9d56c891d08ab34d40f32089f21 Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 14:14:52 +0930 Subject: [PATCH 02/10] Setup Bug Report --- .github/ISSUE_TEMPLATE/bug_report.yml | 127 ++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..535c10182 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,127 @@ +name: Bug Report +description: Report a reproducible MeshCore bug +title: "[BUG] " +labels: ["bug", "needs-triage"] +body: + - type: markdown + attributes: + value: | + ## Before submitting + + Please search existing issues first: + https://github.com/meshcore-dev/MeshCore/issues + + If your issue matches an existing one, please comment on the existing issue instead of creating a duplicate. + + This repository is for MeshCore only. MeshOS is a separate project and is not owned or maintained by the MeshCore team. + + - type: checkboxes + id: precheck + attributes: + label: Pre-flight checklist + options: + - label: I have searched existing issues and this is not a duplicate + required: true + - label: I understand this repository is for MeshCore, not MeshOS + required: true + + - type: dropdown + id: bug_type + attributes: + label: Bug Type + description: Which part of MeshCore is affected? + options: + - Firmware - Community + - Firmware - Ripple + - Client - MeshCore App + - UI - TDeck / Ripple GUI + - CLI / Tooling + - Documentation + - Unsure + validations: + required: true + + - type: dropdown + id: platform + attributes: + label: Platform + description: MCU family, not board model. + options: + - ESP32 + - nRF52 + - Not platform specific + - Unsure + validations: + required: true + + - type: input + id: version + attributes: + label: MeshCore Version + placeholder: "e.g. v1.14, release name, or commit hash" + validations: + required: true + + - type: input + id: radio_settings + attributes: + label: Radio Settings + description: Frequency plan, bandwidth, spreading factor, coding rate, and region if relevant. + placeholder: "e.g. AU915 / 125kHz / SF9 / CR4/5" + + - type: textarea + id: summary + attributes: + label: Summary + description: Briefly describe the problem. + placeholder: "e.g. Repeater appears as Unknown in hop path" + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected Behaviour + description: What should have happened? + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual Behaviour + description: What actually happened? + validations: + required: true + + - type: textarea + id: reproduce + attributes: + label: Steps to Reproduce + description: Provide the clearest reproduction steps possible. + placeholder: | + 1. Flash firmware version ... + 2. Configure radio as ... + 3. Send message via ... + 4. Observe ... + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Logs / Serial Output / Screenshots + description: Paste logs or attach screenshots where possible. + render: shell + + - type: textarea + id: topology + attributes: + label: Network / Topology Context + description: Number of nodes, repeaters, hops, client used, and any relevant setup details. + + - type: textarea + id: additional + attributes: + label: Additional Context + description: Anything else that may help triage the issue. From eab8e8f5bdf68d34daa92c16e6e5cb0974680aac Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 14:15:53 +0930 Subject: [PATCH 03/10] Setup Feature Request --- .github/ISSUE_TEMPLATE/feature_request.yml | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..e002d9b15 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,85 @@ +name: Feature Request +description: Suggest a MeshCore improvement or new capability +title: "[FEATURE] " +labels: ["enhancement", "needs-triage"] +body: + - type: markdown + attributes: + value: | + ## Before submitting + + Please search existing issues first: + https://github.com/meshcore-dev/MeshCore/issues + + If a similar feature request already exists, please comment on the existing issue instead of creating a duplicate. + + This repository is for MeshCore Firmware, Meshcore App and Ripple Firmware. + + - type: checkboxes + id: precheck + attributes: + label: Pre-flight checklist + options: + - label: I have searched existing issues and feature requests + required: true + - label: I understand this repository is for MeshCore, not MeshOS + required: true + + - type: dropdown + id: feature_type + attributes: + label: Feature Type + description: Which part of MeshCore would this feature affect? + options: + - Firmware - Community + - Firmware - Ripple + - Client - MeshCore App + - UI - TDeck / Ripple GUI + - CLI / Tooling + - New Hardware Support + - Protocol / Routing + - Documentation + - Unsure + validations: + required: true + + - type: dropdown + id: platform + attributes: + label: Target Platform + description: MCU family, if relevant. + options: + - ESP32 + - nRF52 + - Not platform specific + - Unsure + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Problem / Use Case + description: What problem does this feature solve? + validations: + required: true + + - type: textarea + id: proposed_solution + attributes: + label: Proposed Solution + description: Describe the behaviour or change you would like. + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Any other approaches or workarounds? + + - type: textarea + id: additional + attributes: + label: Additional Context + description: Links, diagrams, examples, screenshots, or related issues. From af2e4698827a2a11cf806cbdf3913882bb936891 Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 14:17:19 +0930 Subject: [PATCH 04/10] Setup Auto Labelling of Issues (Features/Bugs) --- .github/workflows/auto-label-issues.yml | 85 +++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/workflows/auto-label-issues.yml diff --git a/.github/workflows/auto-label-issues.yml b/.github/workflows/auto-label-issues.yml new file mode 100644 index 000000000..f7e169804 --- /dev/null +++ b/.github/workflows/auto-label-issues.yml @@ -0,0 +1,85 @@ +name: Auto Label Issues + +on: + issues: + types: + - opened + - edited + +permissions: + issues: write + contents: read + +jobs: + auto-label: + runs-on: ubuntu-latest + + steps: + - name: Apply labels from issue form selections + uses: actions/github-script@v7 + with: + script: | + const issue = context.payload.issue; + const body = issue.body || ""; + + const labels = new Set(); + + labels.add("needs-triage"); + + // Area / component labels + if (body.includes("Firmware - Community")) { + labels.add("area:firmware"); + labels.add("firmware:community"); + } + + if (body.includes("Firmware - Ripple")) { + labels.add("area:firmware"); + labels.add("firmware:ripple"); + } + + if (body.includes("Client - MeshCore App")) { + labels.add("area:client"); + } + + if (body.includes("UI - TDeck / Ripple GUI")) { + labels.add("area:ui"); + } + + if (body.includes("CLI / Tooling")) { + labels.add("area:tooling"); + } + + if (body.includes("New Hardware Support")) { + labels.add("area:hardware"); + } + + if (body.includes("Protocol / Routing")) { + labels.add("area:protocol"); + labels.add("area:routing"); + } + + if (body.includes("Documentation")) { + labels.add("documentation"); + labels.add("area:documentation"); + } + + if (body.includes("Unsure")) { + labels.add("needs-review"); + } + + // Platform labels + if (body.includes("ESP32")) { + labels.add("platform:esp32"); + } + + if (body.includes("nRF52")) { + labels.add("platform:nrf52"); + } + + // Apply labels + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue.number, + labels: Array.from(labels) + }); From d9bd9feb4555214c3b7acb872e371b680f28accc Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 15:14:57 +0930 Subject: [PATCH 05/10] Update wording --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 535c10182..c22096810 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -13,7 +13,7 @@ body: If your issue matches an existing one, please comment on the existing issue instead of creating a duplicate. - This repository is for MeshCore only. MeshOS is a separate project and is not owned or maintained by the MeshCore team. + This repository is for MeshCore Community Firmware and Client App and Ripple Firmware. - type: checkboxes id: precheck @@ -22,7 +22,7 @@ body: options: - label: I have searched existing issues and this is not a duplicate required: true - - label: I understand this repository is for MeshCore, not MeshOS + - label: I understand this repository is for MeshCore Community Firmware and Client App and Ripple Firmware required: true - type: dropdown From 05f4cbfc6a913ee749d5d4a746683324ff943248 Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 15:15:24 +0930 Subject: [PATCH 06/10] Update wording --- .github/ISSUE_TEMPLATE/feature_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index e002d9b15..d1893f6e4 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -13,7 +13,7 @@ body: If a similar feature request already exists, please comment on the existing issue instead of creating a duplicate. - This repository is for MeshCore Firmware, Meshcore App and Ripple Firmware. + This repository is for MeshCore Community Firmware and Client App and Ripple Firmware - type: checkboxes id: precheck @@ -22,7 +22,7 @@ body: options: - label: I have searched existing issues and feature requests required: true - - label: I understand this repository is for MeshCore, not MeshOS + - label: I understand this repository is for MeshCore Community Firmware and Client App and Ripple Firmware required: true - type: dropdown From 1026b0a84434085dad52cc079f9ed74360dd4ed1 Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 15:26:29 +0930 Subject: [PATCH 07/10] Dropdown Order Make " - Not platform specific" top item. --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c22096810..dec4867cc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -47,9 +47,9 @@ body: label: Platform description: MCU family, not board model. options: + - Not platform specific - ESP32 - nRF52 - - Not platform specific - Unsure validations: required: true @@ -67,7 +67,7 @@ body: attributes: label: Radio Settings description: Frequency plan, bandwidth, spreading factor, coding rate, and region if relevant. - placeholder: "e.g. AU915 / 125kHz / SF9 / CR4/5" + placeholder: "e.g. AU915 / 62.5kHz / SF9 / CR4/5" - type: textarea id: summary From 249be79c7b4ffd9e86f8651577f2a24b2f9bed42 Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 15:27:02 +0930 Subject: [PATCH 08/10] Update dropdown Make " - Not platform specific" top item --- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index d1893f6e4..07c613a64 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -49,9 +49,9 @@ body: label: Target Platform description: MCU family, if relevant. options: + - Not platform specific - ESP32 - nRF52 - - Not platform specific - Unsure validations: required: true From beb9288b8f28007cdf22345fd787fb649db43cff Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 16:18:38 +0930 Subject: [PATCH 09/10] Remove duplicate documentation label being applied. --- .github/workflows/auto-label-issues.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/auto-label-issues.yml b/.github/workflows/auto-label-issues.yml index f7e169804..98cc2a46a 100644 --- a/.github/workflows/auto-label-issues.yml +++ b/.github/workflows/auto-label-issues.yml @@ -60,7 +60,6 @@ jobs: if (body.includes("Documentation")) { labels.add("documentation"); - labels.add("area:documentation"); } if (body.includes("Unsure")) { From 49692ff1746fd897c8efbd5722b960df96f35cf3 Mon Sep 17 00:00:00 2001 From: Talie5in Date: Fri, 1 May 2026 17:58:15 +0930 Subject: [PATCH 10/10] documentation -> area:documentation --- .github/workflows/auto-label-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-label-issues.yml b/.github/workflows/auto-label-issues.yml index 98cc2a46a..281ef1ea7 100644 --- a/.github/workflows/auto-label-issues.yml +++ b/.github/workflows/auto-label-issues.yml @@ -59,7 +59,7 @@ jobs: } if (body.includes("Documentation")) { - labels.add("documentation"); + labels.add("area:documentation"); } if (body.includes("Unsure")) {