Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate issue templates into forms #985

Merged
merged 6 commits into from
Jul 15, 2024
Merged
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
147 changes: 147 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -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.
>
> <details><summary>The pyRF24 package has numerous advantages over the older/individual python wrapper(s)</summary>
>
> - [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
>
> </details>

- 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 <RF24.h>
// ...
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
21 changes: 0 additions & 21 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -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!
Comment on lines +1 to +3
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BEWARE: I'll be changing this to false if users improperly bypass the form templates with our blank issue option.

As maintainers, we could still retain the ability to open a blank issue template if this is set to false. (see comments at EoF)


# 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
Comment on lines +20 to +25
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a kind of hack. It allows only nRF24 org users to create a blank issue if the blank issue template is disabled. (see comment above)

46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -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].
20 changes: 0 additions & 20 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/question.md

This file was deleted.

59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -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.
>
> <details><summary>The pyRF24 package has numerous advantages over the older/individual python wrapper(s)</summary>
>
> - [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
>
> </details>

- 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].