chore: improve repo templates (#46629)
## What? - Rendering `next info` output as code in the bug template - Removed the "Feature Request" issue template, in favor of a more granular discussion template - Added a minimal template for Help discussions ## Why? The main part of this PR is the new Feature Request template. Anyone can propose a change to Next.js. However adding new features often requires community discussions - whether to align expectations, understand the consequences (eg.: backward compatibility/lifetime of a feature), to look at and understand historical reasons for the current behavior or lack of the feature -, which [GitHub discussions](https://github.com/vercel/next.js/discussions) is more suited for than issues. ## How? - Utilizing the new discussion templates https://docs.github.com/en/discussions/managing-discussions-for-your-community/creating-discussion-category-forms - Adding a link to the [new issue](https://github.com/vercel/next.js/issues/new/choose) view to make it easier to discover [Slack thread](https://vercel.slack.com/archives/C04DUD7EB1B/p1670874727319809) Closes NEXT-742 ---------
This commit is contained in:
parent
1717fd2dbc
commit
16a0e5af32
9 changed files with 85 additions and 37 deletions
20
.github/DISCUSSION_TEMPLATE/help.yml
vendored
Normal file
20
.github/DISCUSSION_TEMPLATE/help.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: What do you need help with?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional information
|
||||
description: Any code snippets, error messages, or dependency details that may be related? (`next info`)
|
||||
render: js
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
attributes:
|
||||
label: Example
|
||||
description: A link to a minimal reproduction is helpful for collaborative debugging!
|
||||
validations:
|
||||
required: false
|
33
.github/DISCUSSION_TEMPLATE/ideas.yml
vendored
Normal file
33
.github/DISCUSSION_TEMPLATE/ideas.yml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Goals
|
||||
description: Short list of what the feature request aims to address?
|
||||
value: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Non-Goals
|
||||
description: Short list of what the feature request _does not_ aim to address?
|
||||
value: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Background
|
||||
description: Discuss prior art, why do you think this feature is needed? Are there current alternatives?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Proposal
|
||||
description: How should this feature be implemented? Are you interested in contributing?
|
||||
validations:
|
||||
required: true
|
9
.github/ISSUE_TEMPLATE/1.bug_report.yml
vendored
9
.github/ISSUE_TEMPLATE/1.bug_report.yml
vendored
|
@ -4,10 +4,10 @@ labels: ['template: bug']
|
|||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: 'NOTE: [examples](https://github.com/vercel/next.js/tree/canary/examples) related issue should be reported using [this](https://github.com/vercel/next.js/issues/new?assignees=&labels=type%3A+example%2Ctemplate%3A+bug&template=2.example_bug_report.yml) issue template instead.'
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: If you leave out sections there is a high likelihood it will be moved to the GitHub Discussions ["Help" section](https://github.com/vercel/next.js/discussions/categories/help).
|
||||
value: |
|
||||
*Note:* If you leave out sections, the issue might be moved to the ["Help" section](https://github.com/vercel/next.js/discussions/categories/help).
|
||||
[examples](https://github.com/vercel/next.js/tree/canary/examples) related issue should be reported using [this](https://github.com/vercel/next.js/issues/new?assignees=&labels=type%3A+example%2Ctemplate%3A+bug&template=2.example_bug_report.yml) issue template instead.
|
||||
Feature requests should be opened as [discussions](https://github.com/vercel/next.js/discussions/new?category=ideas). [Read more](https://github.com/vercel/next.js/blob/canary/contributing/core/adding-features.md).
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Verify canary release
|
||||
|
@ -19,6 +19,7 @@ body:
|
|||
attributes:
|
||||
label: Provide environment information
|
||||
description: Please run `next info` in the root directory of your project and paste the results. You might need to use `npx --no-install next info` if next is not in the current PATH.
|
||||
render: bash
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
|
|
|
@ -4,10 +4,9 @@ labels: ['area: examples']
|
|||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Thanks for taking the time to file a bug report for [one of the examples](https://github.com/vercel/next.js/tree/canary/examples)! Please fill out this form as completely as possible.
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: If you leave out sections there is a high likelihood it will be moved to the GitHub Discussions ["Help" section](https://github.com/vercel/next.js/discussions/categories/help).
|
||||
value: |
|
||||
*Note:* If you leave out sections, the issue might be moved to the ["Help" section](https://github.com/vercel/next.js/discussions/categories/help).
|
||||
Thanks for taking the time to file a bug report for [one of the examples](https://github.com/vercel/next.js/tree/canary/examples)! Please fill out this form as completely as possible.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Verify canary release
|
||||
|
@ -19,6 +18,7 @@ body:
|
|||
attributes:
|
||||
label: Provide environment information
|
||||
description: Please run `next info` in the root directory of your project and paste the results. You might need to use `npx --no-install next info` if next is not in the current PATH.
|
||||
render: bash
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
|
|
28
.github/ISSUE_TEMPLATE/3.feature_request.yml
vendored
28
.github/ISSUE_TEMPLATE/3.feature_request.yml
vendored
|
@ -1,28 +0,0 @@
|
|||
name: Feature Request
|
||||
description: Create a feature request for the Next.js core
|
||||
labels: 'template: story'
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Thanks for taking the time to file a feature request! Please fill out this form as completely as possible.
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: 'Feature requests will be converted to the GitHub Discussions "Ideas" section.'
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe the feature you'd like to request
|
||||
description: A clear and concise description of what you want and what your use case is.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
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
|
||||
attributes:
|
||||
label: Describe alternatives you've considered
|
||||
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||
validations:
|
||||
required: true
|
3
.github/ISSUE_TEMPLATE/config.yml
vendored
3
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -3,3 +3,6 @@ contact_links:
|
|||
- name: Ask a question
|
||||
url: https://github.com/vercel/next.js/discussions
|
||||
about: Ask questions and discuss with other community members
|
||||
- name: Feature request
|
||||
url: https://github.com/vercel/next.js/discussions/new?category=ideas
|
||||
about: Feature requests should be opened as discussions
|
||||
|
|
|
@ -29,5 +29,6 @@ To contribute to [our examples](./examples), please see
|
|||
- [Building](./contributing/core/building.md)
|
||||
- [Testing](./contributing/core/testing.md)
|
||||
- [Adding Error Links](./contributing/core/adding-error-links.md)
|
||||
- [Adding a new feature](./contributing/core/adding-features.md)
|
||||
- [Developing Using Local App](./contributing/core/developing-using-local-app.md)
|
||||
<!-- - [Using the VS Code Debugger](./contributing/core/vscode-debugger.md) -->
|
||||
|
|
17
contributing/core/adding-features.md
Normal file
17
contributing/core/adding-features.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Adding a new feature
|
||||
|
||||
Anyone can propose a change to Next.js. However, adding new features often requires community discussions before proceeding with the implementation.
|
||||
|
||||
Therefore, before opening a PR, you should use the [Feature Request discussion template](https://github.com/vercel/next.js/discussions/new?category=ideas) and collect feedback.
|
||||
|
||||
## Why use a discussion?
|
||||
|
||||
The discussion's goal is to achieve the following:
|
||||
|
||||
1. **Verify the validity of the feature request**: The community can upvote discussions. Highly upvoted feature requests are more likely to be considered.
|
||||
2. **Understanding the consequences**: Any feature added to Next.js is likely to be around for a while and _has to be maintained_. This means that a new feature has to cover many use cases, needs to consider how it affects the ecosystem, and so on.
|
||||
3. **Looking at and understanding historical reasons for the current behavior or lack of the feature**: There might be a reason why a feature does not exist, or why the current implementation is in a certain way. There must be solid reasoning to change this, as the feature needs to be maintained even after it is added. (See 2.). Next.js has a strong policy on not breaking features, so any new feature has to be added in a way that makes it possible to incrementally adopt it.
|
||||
|
||||
## Examples
|
||||
|
||||
The Next.js team uses RFCs (Request For Comment), which you can find in [this discussion category](https://github.com/vercel/next.js/discussions/categories/rfc). Reading through these, you can get a better understanding of what is expected to be included in a good feature request.
|
|
@ -2,9 +2,10 @@
|
|||
|
||||
Repository maintainers triage every issue and PR opened in the repository.
|
||||
|
||||
> Note: Feature requests should be opened as discussions, filling out [this template](https://github.com/vercel/next.js/discussions/new?category=ideas).
|
||||
|
||||
Issues are opened with one of these labels:
|
||||
|
||||
- `template: story` - a feature request, converted to an [💡 Ideas discussion](https://github.com/vercel/next.js/discussions/categories/ideas)
|
||||
- `template: bug` - unverified issue with Next.js itself, or one of the examples in the [`examples`](https://github.com/vercel/next.js/tree/canary/examples) folder
|
||||
- `template: documentation` - feedback for improvement or an unverified issue with the Next.js documentation
|
||||
|
||||
|
|
Loading…
Reference in a new issue