From bae511186077445b357d916d0bc46105964c8232 Mon Sep 17 00:00:00 2001
From: Brendan <2bndy5@gmail.com>
Date: Sun, 14 Jul 2024 18:27:20 -0700
Subject: [PATCH] migrate issue templates into forms (#985)
---
.github/ISSUE_TEMPLATE/bug-report.yml | 147 +++++++++++++++++++++
.github/ISSUE_TEMPLATE/bug_report.md | 21 ---
.github/ISSUE_TEMPLATE/config.yml | 25 ++++
.github/ISSUE_TEMPLATE/feature-request.yml | 46 +++++++
.github/ISSUE_TEMPLATE/feature_request.md | 20 ---
.github/ISSUE_TEMPLATE/question.md | 10 --
.github/ISSUE_TEMPLATE/question.yml | 59 +++++++++
7 files changed, 277 insertions(+), 51 deletions(-)
create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml
delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 .github/ISSUE_TEMPLATE/config.yml
create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml
delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md
delete mode 100644 .github/ISSUE_TEMPLATE/question.md
create mode 100644 .github/ISSUE_TEMPLATE/question.yml
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
new file mode 100644
index 000000000..d37d08e6e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -0,0 +1,147 @@
+name: Report a problem
+description: Create a report to let us help you
+body:
+
+ # This stuff will be rendered when the user is creating the issue.
+ # It is not included in the issue's description when the user submits the issue
+ - type: markdown
+ attributes:
+ value: |-
+ [docs]: https://nRF24.github.io/RF24
+ [api-docs]: https://nrf24.github.io/RF24/classRF24.html
+ [common-issues]: https://github.com/nRF24/RF24/blob/master/COMMON_ISSUES.md
+ [platform-pages]: https://nrf24.github.io/RF24/pages.html
+
+ Please read [about common issues][common-issues] first.
+ It addresses the most common problems that people have (whether they know it or not).
+
+ > [!caution]
+ > These issues/tickets are intended **only for problems related to the RF24 library** source code.
+ > Please use other forums/communities to ask questions that specific to _your_ source code.
+ > - [Arduino Forums](https://forum.arduino.cc/)
+ > - [PlatformIO forums](https://community.platformio.org/)
+
+ We also host exhaustive [library documentation][docs].
+ Please check the [API documentation][api-docs] or [platform support pages][platform-pages] to see if your question is addressed there.
+
+ > [!important]
+ > Python users should migrate to using our [pyRF24](https://github.com/nRF24/pyRF24) python package.
+ >
+ > The pyRF24 package has numerous advantages over the older/individual python wrapper(s)
+ >
+ > - [x] [drop-in compatible](https://nrf24.github.io/pyRF24/#migrating-to-pyrf24) API
+ > - [x] available via [`pip install pyrf24`](https://pypi.org/project/pyrf24/)
+ > - [x] no need to build from source and does not require the C++ libraries installed
+ > - [x] includes wrappers for RF24, RF24Network, RF24Mesh libraries and a fake BLE implementation
+ > - [x] includes typing stubs for type checking tools like mypy
+ > - [x] has [dedicated documentation](https://nrf24.github.io/pyRF24) and supports Python's builtin `help()` function
+ >
+ >
+
+ - type: input
+ id: module
+ attributes:
+ label: What radio module do you use?
+ description: >-
+ Please tell us what type of radio(s) you are using.
+ We are especially interested if you are using a PA/LNA variant.
+ placeholder: nRF24L01+ PA/LNA, nRF24L01+
+ validations:
+ required: true
+
+ - type: input
+ id: platform
+ attributes:
+ label: What driver board(s) do you use?
+ description: >-
+ Please tell us what board(s) you are using to drive the radio.
+ placeholder: Arduino UNO, RPi3, RPi Pico
+ validations:
+ required: true
+
+ - type: markdown
+ attributes:
+ value: |-
+ > [!warning]
+ > Any 64-bit Linux OS requires installing RF24 libraries with
+ > [our CMake instructions](https://nrf24.github.io/RF24/md_docs_2using__cmake.html).
+
+ - type: textarea
+ id: linux-os
+ attributes:
+ label: If using Linux, what OS are you using?
+ description: |-
+ This is only needed if you are using a Linux system to drive the radio.
+
+ Please copy and paste the output for the following command:
+
+ ```text
+ uname -srm && lsb_release -a
+ ```
+ placeholder: |-
+ Linux 6.6.28+rpt-rpi-v7 armv7l
+ No LSB modules are available.
+ Distributor ID: Raspbian
+ Description: Raspbian GNU/Linux 12 (bookworm)
+ Release: 12
+ Codename: bookworm
+ render: text
+
+ - type: dropdown
+ id: linux-driver
+ attributes:
+ label: If using Linux, what RF24 driver did you select?
+ description: |-
+ These are hardware drivers that the RF24 library supports on Linux.
+ Please select which one you used.
+
+ > [!note]
+ > The `SPIDEV` driver is highly recommended and will be the only driver supported in the future.
+ > See rationale in [nRF24/RF24#971](https://github.com/nRF24/RF24/issues/971).
+ options:
+ - SPIDEV (linux kernel)
+ - RPi (BCM2835 library)
+ - MRAA
+ - wiringPi
+ - pigpio
+ - LittleWire
+
+ - type: textarea
+ id: user-issue
+ attributes:
+ label: Describe your problem
+ description: Please use as much detail as possible.
+ placeholder: You can use markdown syntax here
+ validations:
+ required: true
+
+ - type: markdown
+ id: how-to-md
+ attributes:
+ value: |-
+ [gfm-doc]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax
+
+ GitHub supports their own flavor of MarkDown syntax.
+ Learn more about writing Markdown syntax in [GitHub's documentation][gfm-doc].
+
+ - type: textarea
+ id: rx-code
+ attributes:
+ label: What is the RX code?
+ description: >-
+ Use this area to show your relevant source code for RX behavior.
+ value: |-
+ #include
+ // ...
+ render: cpp
+
+ - type: textarea
+ id: tx-code
+ attributes:
+ label: What is the TX code?
+ description: >-
+ Use this area to show your relevant source code for TX behavior.
+ value: |-
+ // The code for RX is same for TX.
+ // See above code for RX
+ render: cpp
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index a8998e3ef..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: ''
-labels: ''
-assignees: ''
-
----
-
-Please read [about common issues](https://github.com/nRF24/RF24/blob/master/COMMON_ISSUES.md) first. It addresses the most common problems that people have (whether they know it or not).
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-Please include:
-1. Code to reproduce
-2. Expected behaviour
-3. What device(s) are you using? Please specify make, model, and Operating System if applicable.
-
-**Additional context**
-Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..f8bbc5d07
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,25 @@
+# this setting will force users to use the provided issue templates
+blank_issues_enabled: true
+# This setting may be changed in the future if the templates are not being used!
+
+# if the templates provided don't fit the subject of the user feedback,
+# here we can give links to other forms of user feedback
+contact_links:
+ - name: Arduino Forums
+ url: https://forum.arduino.cc/
+ about: A place for questions not specific to RF24 library (for Arduino users)
+ - name: PlatformIO Forums
+ url: https://community.platformio.org/
+ about: A place for questions not specific to RF24 library (for PlatformIO users)
+ - name: Common nRF24L01 problems
+ url: https://nrf24.github.io/RF24/md_COMMON__ISSUES.html
+ about: We have documented common issues for user convenience and quick solutions
+ - name: RF24 API documentation
+ url: https://nrf24.github.io/RF24/classRF24.html
+ about: Our exhaustive documentation helps describe expected behavior
+ # This link is only useful if blank issues templates are disabled (see top of this file)
+ # Uncomment this list item and disable blank issue templates
+ # to allow only maintainers the ability to open a blank issue
+ # - name: Maintainers' note
+ # url: https://github.com/nRF24/RF24/issues/new
+ # about: Start a discussion for maintainers only
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml
new file mode 100644
index 000000000..6d6b9e399
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.yml
@@ -0,0 +1,46 @@
+name: Feature request
+description: Suggest an idea for this project
+body:
+ - type: textarea
+ id: behavior
+ attributes:
+ label: Describe the behavior you would like
+ description: >-
+ Use this area to describe what behavior you desire.
+ Please be clear and concise as possible.
+ placeholder: You can use markdown syntax here
+ validations:
+ required: true
+
+ - type: textarea
+ id: proposal
+ attributes:
+ label: Propose an implementation or solution
+ description: >-
+ How do you imagine this will be implemented in code?
+ placeholder: You can use markdown syntax here
+
+ - type: textarea
+ id: alternative
+ attributes:
+ label: Describe alternatives you have considered
+ description: >-
+ Were you able to achieve the desired behavior in some other/inconvenient way?
+ placeholder: You can use markdown syntax here
+
+ - type: textarea
+ id: added-context
+ attributes:
+ label: Additional context
+ description: >-
+ If there is anything that might be special or specific to your usage, please let us know.
+ placeholder: You can use markdown syntax here
+
+ - type: markdown
+ id: how-to-md
+ attributes:
+ value: |-
+ [gfm-doc]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax
+
+ GitHub supports their own flavor of MarkDown syntax.
+ Learn more about writing Markdown syntax in [GitHub's documentation][gfm-doc].
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index bbcbbe7d6..000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
deleted file mode 100644
index cd314e19f..000000000
--- a/.github/ISSUE_TEMPLATE/question.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-name: Question
-about: Have a question?
-title: "[Question]"
-labels: question
-assignees: ''
-
----
-
-Please read [about common issues](https://github.com/nRF24/RF24/blob/master/COMMON_ISSUES.md) first. It addresses the most common problems that people have (whether they know it or not).
diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml
new file mode 100644
index 000000000..f6d7a6960
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.yml
@@ -0,0 +1,59 @@
+name: Question
+description: Have a question?
+title: "[Question]: "
+labels: ["question"]
+body:
+
+ # This stuff will be rendered when the user is creating the issue.
+ # It is not included in the issue's description when the user submits the issue
+ - type: markdown
+ attributes:
+ value: |-
+ [docs]: https://nRF24.github.io/RF24
+ [api-docs]: https://nrf24.github.io/RF24/classRF24.html
+ [common-issues]: https://github.com/nRF24/RF24/blob/master/COMMON_ISSUES.md
+ [platform-pages]: https://nrf24.github.io/RF24/pages.html
+
+ Please read [about common issues][common-issues] first.
+ It addresses the most common problems that people have (whether they know it or not).
+
+ > [!caution]
+ > These issues/tickets are intended **only for problems related to the RF24 library** source code.
+ > Please use other forums/communities to ask questions that specific to _your_ source code.
+ > - [Arduino Forums](https://forum.arduino.cc/)
+ > - [PlatformIO forums](https://community.platformio.org/)
+
+ We also host exhaustive [library documentation][docs].
+ Please check the [API documentation][api-docs] or [platform support pages][platform-pages] to see if your question is addressed there.
+
+ > [!important]
+ > Python users should migrate to using our [pyRF24](https://github.com/nRF24/pyRF24) python package.
+ >
+ > The pyRF24 package has numerous advantages over the older/individual python wrapper(s)
+ >
+ > - [x] [drop-in compatible](https://nrf24.github.io/pyRF24/#migrating-to-pyrf24) API
+ > - [x] available via [`pip install pyrf24`](https://pypi.org/project/pyrf24/)
+ > - [x] no need to build from source and does not require the C++ libraries installed
+ > - [x] includes wrappers for RF24, RF24Network, RF24Mesh libraries and a fake BLE implementation
+ > - [x] includes typing stubs for type checking tools like mypy
+ > - [x] has [dedicated documentation](https://nrf24.github.io/pyRF24) and supports Python's builtin `help()` function
+ >
+ >
+
+ - type: textarea
+ id: user-question
+ attributes:
+ # `label` is a required field here. I'm guessing that it cannot be an empty string.
+ label: What would you like to know?
+ placeholder: You can use markdown syntax here
+ validations:
+ required: true
+
+ - type: markdown
+ id: how-to-md
+ attributes:
+ value: |-
+ [gfm-doc]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax
+
+ GitHub supports their own flavor of MarkDown syntax.
+ Learn more about writing Markdown syntax in [GitHub's documentation][gfm-doc].