diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..7691d9b --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,5 @@ +# Aligns with the rest of the meshtastic org. The project as a whole is +# funded via GitHub Sponsors and Open Collective at the org level; this +# repo does not run independent campaigns. +github: [meshtastic] +open_collective: meshtastic diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..b5211a8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,98 @@ +name: Bug report +description: Something isn't working as documented. +title: "[bug] " +labels: ["bug", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to file a bug. Please fill in as much of the form as you can. + For security issues, **do not file here** — see [`docs/security.md`](../../docs/security.md). + + - type: input + id: sdk-version + attributes: + label: SDK version + description: e.g. `0.1.0`, `0.2.0-SNAPSHOT`, or commit SHA + placeholder: "0.1.0" + validations: + required: true + + - type: dropdown + id: target + attributes: + label: Target platform + multiple: true + options: + - Android + - JVM (desktop / server) + - iOS + - wasmJs (browser) + validations: + required: true + + - type: dropdown + id: transport + attributes: + label: Transport in use + multiple: true + options: + - BLE + - TCP + - USB Serial (Android) + - Serial (JVM) + - Other / N-A + validations: + required: true + + - type: input + id: firmware + attributes: + label: Device firmware version + description: From `AdminApi.getMetadata()` or the device's About screen + placeholder: "2.5.10.abcdef" + validations: + required: true + + - type: textarea + id: what-happened + attributes: + label: What happened? + description: A clear and concise description of the bug. + validations: + required: true + + - type: textarea + id: expected + attributes: + label: What did you expect to happen? + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Minimal reproduction + description: Code snippet or `samples/cli` command. Smaller is better. + render: kotlin + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Logs + description: | + Paste relevant logs at `LogLevel.Debug`. Redact PSKs and any session tokens. + Wrap in triple backticks. + render: shell + + - type: checkboxes + id: terms + attributes: + label: Affirmations + options: + - label: I have searched existing issues and this isn't a duplicate. + required: true + - label: I have read [`docs/security.md`](../../docs/security.md) and confirmed this is not a security-sensitive issue. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..4e31ac9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Security advisory + url: https://github.com/meshtastic/kzstd/security/advisories/new + about: Don't file public issues for security problems. Use a private security advisory. + - name: Meshtastic community + url: https://meshtastic.org/docs/community/ + about: General Meshtastic questions belong in the community channels. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..41417e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,60 @@ +name: Feature request +description: Suggest an addition or change. +title: "[feature] " +labels: ["enhancement", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for the suggestion! For larger design changes, consider opening a discussion first + or proposing an ADR per [`CONTRIBUTING.md`](../../CONTRIBUTING.md#adrs-architecture-decision-records). + + - type: textarea + id: problem + attributes: + label: Problem + description: What gap or pain are you trying to solve? Who else has this need? + validations: + required: true + + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: | + What API surface, behavior, or tooling change would solve it? Keep it concrete — + ideally a snippet of the API as you'd want to use it. + render: kotlin + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: What else have you tried or thought about? + + - type: dropdown + id: scope + attributes: + label: Likely scope + options: + - "core (engine / public API)" + - "transport-* (a transport module)" + - "storage-* (a storage module)" + - "tooling / build / CI" + - "docs / spec" + - "samples" + - "not sure" + validations: + required: true + + - type: checkboxes + id: terms + attributes: + label: Affirmations + options: + - label: I have searched existing issues and discussions. + required: true + - label: I am willing to discuss design trade-offs before implementation. + required: true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index df6a6ad..5f4e9e2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -7,3 +7,4 @@ retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +distributionSha256Sum=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f