diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index fe26cd1..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' -type: Bug - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..490191b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,57 @@ +name: Bug report +description: Something on the phpBB.com websites is broken or wrong +labels: [bug] +type: Bug +body: + - type: markdown + attributes: + value: | + Thanks for reporting! This tracker is for the phpBB.com websites only. Bugs in the phpBB + software go to [tracker.phpbb.com](https://tracker.phpbb.com/browse/PHPBB3), and security + problems must be [reported privately](https://github.com/phpbb/website_issues/security). + - type: dropdown + id: area + attributes: + label: Which site or area is affected? + options: + - www.phpbb.com + - area51.phpbb.com + - blog.phpbb.com + - tracker.phpbb.com (the tracker itself, not phpBB bugs) + - Downloads + - Sign-in / account + - Something else / not sure + validations: + required: true + - type: input + id: url + attributes: + label: Page URL + description: The address of the page where you saw the problem, if there is one. + placeholder: https://www.phpbb.com/... + - type: textarea + id: description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: To reproduce + description: Steps to reproduce the behaviour. + placeholder: | + 1. Go to '...' + 2. Click on '...' + 3. See error + - type: textarea + id: expected + attributes: + label: Expected behaviour + description: What you expected to happen instead. + - type: textarea + id: context + attributes: + label: Screenshots and additional context + description: Screenshots, browser and operating system, or anything else that helps. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index e255ea9..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' -type: Feature - ---- - -**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/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..b40855a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,41 @@ +name: Feature request +description: Suggest an idea or improvement for the phpBB.com websites +labels: [enhancement] +type: Feature +body: + - type: dropdown + id: area + attributes: + label: Which site or area is affected? + options: + - www.phpbb.com + - area51.phpbb.com + - blog.phpbb.com + - tracker.phpbb.com (the tracker itself, not phpBB bugs) + - Downloads + - Sign-in / account + - Something else / not sure + validations: + required: true + - type: textarea + id: problem + attributes: + label: Is your feature request related to a problem? + description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + - 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: true + - type: textarea + id: alternatives + attributes: + label: Describe alternatives you've considered + description: Any alternative solutions or features you've considered. + - type: textarea + id: context + attributes: + label: Additional context + description: Any other context or screenshots about the feature request. diff --git a/.github/issue-routing.yml b/.github/issue-routing.yml new file mode 100644 index 0000000..56f2ee3 --- /dev/null +++ b/.github/issue-routing.yml @@ -0,0 +1,65 @@ +# Issue routing: which labels an issue gets and who is assigned to it. +# +# This is the only place sites, labels and teams are defined. The "area" dropdown in +# the issue forms (.github/ISSUE_TEMPLATE/*.yml) is generated from this file +# automatically when it changes, so never edit those options by hand. +# +# How it works: +# 1. Each entry under `labels` is a label. If it has an `area`, that text is an option +# in the issue form's dropdown, and picking it adds the label to a new issue. +# 2. For every label on an issue, the members of its `teams` (and any extra `users`) +# are assigned. Adding one of these labels later assigns that label's team too. +# 3. An issue always ends up with at least one label and one assignee: if it has +# none, the label marked `fallback: true` and its team are used. The fallback +# label is removed again once another routed label is added. +# +# Keys per label: +# area Text shown in the form dropdown (optional; leave out for labels that +# are only added by hand). Dropdown order follows this file. +# teams Team slugs in the phpbb organisation: development-team, extensions-team, +# management, styles-team, support-team, website-team. +# users Extra GitHub usernames to assign (optional). +# color Label colour, used when the label is created. Quote it. +# description Label description, used when the label is created. +# fallback true on exactly one label: used for issues nobody else picked up. + +# The dropdown heading in the issue forms. +area_field: Which site or area is affected? + +labels: + "site: www": + area: www.phpbb.com + color: "1d76db" + description: www.phpbb.com + teams: [website-team] + "site: area51": + area: area51.phpbb.com + color: "5319e7" + description: area51.phpbb.com + teams: [website-team, development-team] + "site: blog": + area: blog.phpbb.com + color: "c5def5" + description: blog.phpbb.com + teams: [website-team] + "site: tracker": + area: tracker.phpbb.com (the tracker itself, not phpBB bugs) + color: "bfd4f2" + description: tracker.phpbb.com + teams: [website-team, development-team] + downloads: + area: Downloads + color: "0e8a16" + description: Downloads and the download pages + teams: [website-team] + accounts: + area: Sign-in / account + color: "fbca04" + description: Sign-in, registration and accounts + teams: [website-team] + needs triage: + area: Something else / not sure + fallback: true + color: "d4c5f9" + description: Needs to be looked at and routed + teams: [website-team] diff --git a/.github/scripts/issue-routing.js b/.github/scripts/issue-routing.js new file mode 100644 index 0000000..69bc482 --- /dev/null +++ b/.github/scripts/issue-routing.js @@ -0,0 +1,272 @@ +// Labels and assigns issues according to .github/issue-routing.yml. +// +// route() runs from .github/workflows/issue-routing.yml through actions/github-script. +// Running this file directly validates the config against the issue forms: +// node issue-routing.js validate ... +// (the YAML files are converted to JSON with yq first, see the workflow). + +// GitHub refuses more than 10 assignees on an issue. +const MAX_ASSIGNEES = 10; + +// Returns the answer given to a field of an issue form, or null. +// Forms render as "###