github: Update issue templates to issue forms

Issue forms templates allow us to add automation in place.
This patch replaces old markdown issue templates with new issue forms.
It also adds workflow to automatically mark issues by component label
based on reported data.

This change could help with initial triaging of issues.
This commit is contained in:
Jan Macku 2022-06-10 07:30:42 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent 4885d7490b
commit 6b16539879
6 changed files with 303 additions and 64 deletions

View file

@ -1,47 +0,0 @@
---
name: Bug report
about: A report of an error in a recent systemd version
SPDX-License-Identifier: LGPL-2.1-or-later
---
**systemd version the issue has been seen with**
> …
<!-- **NOTE:** Do not submit bug reports about anything but the two most recently released *major* systemd versions upstream! -->
<!-- If there have been multiple stable releases for that major version, please consider updating to a recent one before reporting an issue. -->
<!-- When using a distro package, please make sure that the version reported is meaningful for upstream. -->
<!-- See https://github.com/systemd/systemd-stable/tags for the list of most recent releases. -->
<!-- For older version please use distribution trackers (see https://systemd.io/CONTRIBUTING#filing-issues). -->
**Used distribution**
> …
**Linux kernel version used** (`uname -a`)
<!-- Make sure to enclose the pasted kernel version in `backticks`, so that
GitHub doesn't convert the `#` character typically included in it into a
reference to old GitHub issues. -->
> `…`
**CPU architecture issue was seen on**
> …
**Expected behaviour you didn't see**
> …
**Unexpected behaviour you saw**
> …
**Steps to reproduce the problem**
> …
**Additional program output to the terminal or log subsystem illustrating the issue**
<!-- Please paste relevant program terminal or journal output here, ideally
when generated in debug mode (try setting the SYSTEMD_LOG_LEVEL=debug
environment variable). For very long copy/pasted data consider using a
service like https://gist.github.com/. Where copy/paste is not possible
(for example early boot or late shutdown), a photo of the screen might do
too, but text is always much preferred. -->
```text
```

View file

@ -1,17 +0,0 @@
---
name: Feature request
about: Suggest an improvement
SPDX-License-Identifier: LGPL-2.1-or-later
---
**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.
**The systemd version you checked that didn't have the feature you are asking for**
<!-- If this is not the most recently released upstream version, then please check first if it has that feature already. -->

137
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View file

@ -0,0 +1,137 @@
name: Bug Report
description: A report of an error in a recent systemd version
labels: ["bug 🐛"]
body:
- type: markdown
attributes:
value: Thanks for taking the time to fill out this bug report!
- type: input
id: version
attributes:
label: systemd version the issue has been seen with
description: |
Do not submit bug reports about anything but the two most recently released *major* systemd versions upstream!
If there have been multiple stable releases for that major version, please consider updating to a recent one before reporting an issue.
When using a distro package, please make sure that the version reported is meaningful for upstream.
If a distro build is used, please just paste the package version, e.g. `systemd-250.7-1.fc36.x86_64`.
See https://github.com/systemd/systemd-stable/tags for the list of most recent releases.
For older version please use distribution trackers (see https://systemd.io/CONTRIBUTING#filing-issues).
placeholder: '251'
validations:
required: true
- type: input
id: distro
attributes:
label: Used distribution
description: Used distribution and it's version
placeholder: Fedora 36
validations:
required: false
- type: input
id: kernel
attributes:
label: Linux kernel version used
description: |
Please use `uname -r` to get linux kernel version.
placeholder: 5.17.12-300.fc36.ppc64le
validations:
required: false
- type: dropdown
id: architecture
attributes:
label: CPU architectures issue was seen on
options:
- aarch64
- alpha
- arm
- i686
- ia64
- loongarch
- mips
- parisc
- ppc (big endian)
- ppc64 (big endian)
- ppc64le
- riscv64
- s390x
- sparc
- sparc64
- x86_64
- other
validations:
required: false
- type: dropdown
id: component
attributes:
label: Component
description: Please chose components related to this issue.
multiple: true
options:
- 'bootctl'
- 'homectl'
- 'journalctl'
- 'loginctl'
- 'networkctl'
- 'nss-resolve'
- 'pam_systemd'
- 'pam_systemd_home'
- 'resolvectl'
- 'systemctl'
- 'systemd'
- 'systemd-boot'
- 'systemd-homed'
- 'systemd-journald'
- 'systemd-logind'
- 'systemd-networkd'
- 'systemd-networkd-wait-online'
- 'systemd-nspawn'
- 'systemd-resolved'
- 'systemd-stub'
- 'systemd-udevd'
- 'the bootloader itself'
- 'udev builtins'
- 'udevadm'
- '.network files'
- 'tests'
- 'other'
validations:
required: false
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour you didn't see
validations:
required: false
- type: textarea
id: unexpected-behaviour
attributes:
label: Unexpected behaviour you saw
validations:
required: false
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce the problem
validations:
required: false
- type: textarea
id: additional-information
attributes:
label: Additional program output to the terminal or log subsystem illustrating the issue
description: |
Please paste relevant program terminal or journal output here, ideally when generated in debug mode (try setting the `SYSTEMD_LOG_LEVEL=debug` environment variable).
For very long copy/pasted data consider using a service like https://gist.github.com/. Where copy/paste is not possible (for example early boot or late shutdown), a photo of the screen might do too, but text is always much preferred.
placeholder: This will be automatically formatted into code, so no need for backticks.
render: sh
validations:
required: false

View file

@ -0,0 +1,78 @@
name: Feature request
description: Suggest an improvement
labels: ["RFE 🎁"]
body:
- type: markdown
attributes:
value: Thanks for taking the time to fill out this feature request!
- type: dropdown
id: component
attributes:
label: Component
description: Please chose components related to this feature request.
multiple: true
options:
- 'bootctl'
- 'homectl'
- 'journalctl'
- 'loginctl'
- 'networkctl'
- 'nss-resolve'
- 'pam_systemd'
- 'pam_systemd_home'
- 'resolvectl'
- 'systemctl'
- 'systemd'
- 'systemd-boot'
- 'systemd-homed'
- 'systemd-journald'
- 'systemd-logind'
- 'systemd-networkd'
- 'systemd-networkd-wait-online'
- 'systemd-nspawn'
- 'systemd-resolved'
- 'systemd-stub'
- 'systemd-udevd'
- 'the bootloader itself'
- 'udev builtins'
- 'udevadm'
- '.network files'
- 'tests'
- 'other'
validations:
required: false
- type: textarea
id: description
attributes:
label: Is your feature request related to a problem? Please describe
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: false
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: false
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: input
id: version
attributes:
label: The systemd version you checked that didn't have the feature you are asking for
description: If this is not the most recently released upstream version, then please check first if it has that feature already.
placeholder: '251'
validations:
required: false

50
.github/advanced-issue-labeler.yml vendored Normal file
View file

@ -0,0 +1,50 @@
# syntax - https://github.com/redhat-plumbers-in-action/advanced-issue-labeler#policy
# <name of label>: [<list of keywords>]
---
policy:
analyze: ['systemd-analyze']
ask-password: ['systemd-ask-password']
binfmt: ['systemd-binfmt']
cgtop: ['systemd-cgtop']
cryptsetup: ['systemd-cryptsetup']
delta: ['systemd-delta']
env: ['systemd-env-generator', '30-systemd-environment-d-generator']
fsck: ['systemd-fsck']
gpt-auto: ['systemd-gpt-auto-generator']
growfs: ['systemd-growfs']
homed: ['systemd-homed', 'homectl', 'pam_systemd_home']
hostname: ['systemd-hostnamed', 'hostnamectl']
hwdb: ['the hardware database files']
import: ['systemd-importd', 'systemd-import and backends']
journal: ['systemd-journald', 'journalctl']
journal-remote: ['systemd-journal-remote', 'systemd-journal-upload', 'systemd-journal-gatewayd']
kernel-install: ['kernel-install (incl. any plugins)']
logind: ['systemd-logind', 'loginctl', 'pam_systemd']
machined: ['systemd-machined', 'machinectl']
modules-load: ['systemd-modules-load']
network: ['systemd-networkd', 'networkctl', 'systemd-networkd-wait-online', '.network files']
nspawn: ['systemd-nspawn']
oomd: ['systemd-oomd', 'oomctl']
pid1: ['systemd']
portabled: ['systemd-portabled', 'portablectl']
pstore: ['systemd-pstore']
repart: ['systemd-repart']
resolve: ['systemd-resolved', 'resolvectl', 'nss-resolve']
rfkill: ['systemd-rfkill']
rpm: ['rpm scriptlets']
run: ['systemd-run']
sd-boot: ['the bootloader itself', 'bootctl', 'systemd-boot', 'systemd-stub']
sysctl: ['systemd-sysctl']
sysext: ['systemd-sysext']
systemctl: ['systemctl']
sysusers: ['systemd-sysusers']
sysv: ['systemd-sysv-generator']
tests: ['tests']
timedate: ['systemd-timedate']
timesync: ['systemd-timesync']
tmpfiles: ['systemd-tmpfiles']
udev: ['systemd-udevd', 'udevadm', 'udev builtins']
userdb: ['systemd-userdb', 'userdbctl']
veritysetup: ['systemd-veritysetup']
xdg-autostart: ['systemd-xdg-autostart-generator']

38
.github/workflows/issue_labeler.yml vendored Normal file
View file

@ -0,0 +1,38 @@
# Inspired by: https://github.com/stefanbuck/ristorante
# See: https://stefanbuck.com/blog/codeless-contributions-with-github-issue-forms
---
name: Issue labeler
on:
issues:
types: [ opened ]
jobs:
label-component:
runs-on: ubuntu-latest
strategy:
matrix:
template: [ bug_report.yml, feature_request.yml ]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
- name: Parse issue form
uses: stefanbuck/github-issue-praser@v2
id: issue-parser
with:
template-path: .github/ISSUE_TEMPLATE/${{ matrix.template }}
- name: Set labels based on component field
uses: redhat-plumbers-in-action/advanced-issue-labeler@v1
with:
issue-form: ${{ steps.issue-parser.outputs.jsonString }}
section: component
block-list: |
other
token: ${{ secrets.GITHUB_TOKEN }}