Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -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 Community Firmware and Client App and Ripple Firmware.

- 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 Community Firmware and Client App and Ripple Firmware
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:
- Not platform specific
- ESP32
- nRF52
- 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 / 62.5kHz / 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.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -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.
85 changes: 85 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -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 Community Firmware and Client 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 Community Firmware and Client App and Ripple Firmware
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:
- Not platform specific
- ESP32
- nRF52
- 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.
84 changes: 84 additions & 0 deletions .github/workflows/auto-label-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
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("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)
});