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

chore: verify missing/invalid/private reproduction links #54724

Merged
merged 34 commits into from
Aug 30, 2023
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
8f712e4
chore: simplify issue validator actions
balazsorban44 Aug 29, 2023
acd619b
add invalid link verifier
balazsorban44 Aug 29, 2023
ef7e9a0
fix paths
balazsorban44 Aug 29, 2023
497a89d
fix job names
balazsorban44 Aug 29, 2023
4ea6f85
singular
balazsorban44 Aug 29, 2023
e99dd6c
expand
balazsorban44 Aug 29, 2023
4876ff9
make bold
balazsorban44 Aug 29, 2023
d61e8cd
match
balazsorban44 Aug 29, 2023
fa990aa
format
balazsorban44 Aug 30, 2023
4ed1b6a
handle possible platform downtime
balazsorban44 Aug 30, 2023
393c624
Merge branch 'canary' into chore/gh-invalid-link-checker
balazsorban44 Aug 30, 2023
2a2ef2f
use GITHUB_WORKSPACE for __dirname
balazsorban44 Aug 30, 2023
348dddc
Merge branch 'chore/gh-invalid-link-checker' of https://github.com/ba…
balazsorban44 Aug 30, 2023
2410208
format
balazsorban44 Aug 30, 2023
83131fc
chore: simplify issue validator actions (#38)
balazsorban44 Aug 30, 2023
86b2955
fix conditions
balazsorban44 Aug 30, 2023
16575cd
Merge branch 'canary' into chore/gh-invalid-link-checker
balazsorban44 Aug 30, 2023
bef1f81
chore: simplify issue validator actions (#42)
balazsorban44 Aug 30, 2023
a7e4e72
tweak condition
balazsorban44 Aug 30, 2023
f888e29
Merge branch 'chore/gh-invalid-link-checker' of https://github.com/ba…
balazsorban44 Aug 30, 2023
fba3087
Merge branch 'canary' into chore/gh-invalid-link-checker
balazsorban44 Aug 30, 2023
b44868c
fix link matcher
balazsorban44 Aug 30, 2023
2ae7add
Merge branch 'chore/gh-invalid-link-checker' of https://github.com/ba…
balazsorban44 Aug 30, 2023
94f7621
lock invalid issue
balazsorban44 Aug 30, 2023
2f78992
remove unused comment
balazsorban44 Aug 30, 2023
1d9b0e4
simplify
balazsorban44 Aug 30, 2023
797e889
simplify
balazsorban44 Aug 30, 2023
a6e4d47
Merge branch 'canary' into chore/gh-invalid-link-checker
balazsorban44 Aug 30, 2023
591b9a4
Merge branch 'chore/gh-invalid-link-checker' of https://github.com/ba…
balazsorban44 Aug 30, 2023
a786055
typos
balazsorban44 Aug 30, 2023
06e2657
format
balazsorban44 Aug 30, 2023
7c75a01
allow replay.io
balazsorban44 Aug 30, 2023
ad6c177
Apply suggestions from code review
styfle Aug 30, 2023
b16016f
Merge branch 'canary' into chore/gh-invalid-link-checker
kodiakhq[bot] Aug 30, 2023
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
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ packages/react-refresh-utils/**/*.js
packages/react-dev-overlay/lib/**
**/__tmp__/**
.github/actions/next-stats-action/.work
.github/actions/issue-labeler/lib/index.js
.github/actions/issue-validator/*/index.mjs
.github/actions/validate-docs-links/lib/index.js
.github/actions/needs-triage/index.js
.github/actions/*/index.mjs
Expand Down
7 changes: 0 additions & 7 deletions .github/actions/issue-labeler/lib/index.js

This file was deleted.

3 changes: 0 additions & 3 deletions .github/actions/issue-labeler/lib/package.json

This file was deleted.

19 changes: 0 additions & 19 deletions .github/actions/issue-labeler/package.json

This file was deleted.

10 changes: 0 additions & 10 deletions .github/actions/issue-labeler/tsconfig.json

This file was deleted.

7 changes: 7 additions & 0 deletions .github/actions/issue-validator/autolabel/index.mjs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
Please verify that your issue can be recreated with `next@canary`.

### **Why was this issue marked with the `please verify canary` label?**
### Why was this issue marked with the `please verify canary` label?

We noticed the provided reproduction was using an older version of Next.js, instead of `canary`.

The canary version of Next.js ships daily and includes all features and fixes that have not been released to the stable version yet. You can think of canary as a _public beta_. Some issues may already be fixed in the canary version, so please verify that your issue reproduces by running `npm install next@canary` and test it in your project, using your reproduction steps.

If the issue does not reproduce with the `canary` version, then it has already been fixed and this issue can be closed.

### **How can I quickly verify if my issue has been fixed in `canary`?**
### How can I quickly verify if my issue has been fixed in `canary`?

The safest way is to install `next@canary` in your project and test it, but you can also search through [closed Next.js issues](https://github.com/vercel/next.js/issues?q=is%3Aissue+is%3Aclosed) for duplicates or check the [Next.js releases](https://github.com/vercel/next.js/releases). You can also use the GitHub templates (preferred) for [App Router](https://github.com/vercel/next.js/tree/canary/examples/reproduction-template) and [Pages Router](https://github.com/vercel/next.js/tree/canary/examples/reproduction-template-pages), or the [CodeSandbox: App Router](https://codesandbox.io/s/github/vercel/next.js/tree/canary/examples/reproduction-template) or [CodeSandbox: Pages Router](https://codesandbox.io/s/github/vercel/next.js/tree/canary/examples/reproduction-template-pages) templates to create a reproduction with `canary` from scratch.

### **My issue has been open for a long time, why do I need to verify `canary` now?**
### My issue has been open for a long time, why do I need to verify `canary` now?

Next.js does not backport bug fixes to older versions of Next.js. Instead, we are trying to introduce only a minimal amount of breaking changes between major releases.

### **What happens if I don't verify against the canary version of Next.js?**
### What happens if I don't verify against the canary version of Next.js?

An issue with the `please verify canary` that receives no meaningful activity (e.g. new comments that acknowledge verification against `canary`) will be automatically closed and locked after 30 days.

If your issue has not been resolved in that time and it has been closed/locked, please open a new issue, with the required reproduction, using `next@canary`.

### **I did not open this issue, but it is relevant to me, what can I do to help?**
### I did not open this issue, but it is relevant to me, what can I do to help?

Anyone experiencing the same issue is welcome to provide a minimal reproduction following the above steps. Furthermore, you can upvote the issue using the :+1: reaction on the topmost comment (please **do not** comment "I have the same issue" without reproduction steps). Then, we can sort issues by votes to prioritize.

### **I think my reproduction is good enough, why aren't you looking into it quicker?**
### I think my reproduction is good enough, why aren't you looking into it quicker?

We look into every Next.js issue and constantly monitor open issues for new comments.

However, sometimes we might miss one or two due to the popularity/high traffic of the repository. We apologize, and kindly ask you to refrain from tagging core maintainers, as that will usually not result in increased priority.

Upvoting issues to show your interest will help us prioritize and address them as quickly as possible. That said, every issue is important to us, and if an issue gets closed by accident, we encourage you to open a new one linking to the old issue and we will look into it.

### **Useful Resources**
### Useful Resources

- [How to Contribute to Open Source (Next.js)](https://www.youtube.com/watch?v=cuoNzXFLitc)
- [How to create a Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve)
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,30 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


nextjs-project
The MIT License (MIT)

Copyright (c) 2023 Vercel, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


node-fetch
MIT
The MIT License (MIT)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
We cannot recreate the issue with the provided information. **Please add a reproduction in order for us to be able to investigate.**

### **Why was this issue marked with the `please add a complete reproduction` label?**
### Why was this issue marked with the `please add a complete reproduction` label?

To be able to investigate, we need access to a reproduction to identify what triggered the issue. We prefer a link to a public GitHub repository ([template for App Router](https://github.com/vercel/next.js/tree/canary/examples/reproduction-template), [template for Pages Router](https://github.com/vercel/next.js/tree/canary/examples/reproduction-template-pages)), but you can also use these templates: [CodeSandbox: App Router](https://codesandbox.io/s/github/vercel/next.js/tree/canary/examples/reproduction-template) or [CodeSandbox: Pages Router](https://codesandbox.io/s/github/vercel/next.js/tree/canary/examples/reproduction-template-pages).

Expand All @@ -10,29 +10,29 @@ Please test your reproduction against the latest version of Next.js (`next@canar

If you cannot create a clean reproduction, another way you can help the maintainers' job is to pinpoint the `canary` version of `next` that introduced the issue. Check out our [releases](https://github.com/vercel/next.js/releases), and try to find the first `canary` release that introduced the issue. This will help us narrow down the scope of the issue, and possibly point to the PR/code change that introduced it. You can install a specific version of `next` by running `npm install next@<version>`.

### **I added a link, why was it still marked?**
### I added a link, why was it still marked?

Ensure the link is pointing to a codebase that is accessible (e.g. not a private repository). "[example.com](http://example.com/)", "n/a", "will add later", etc. are not acceptable links -- we need to see a public codebase. See the above section for accepted links.

### **What happens if I don't provide a sufficient minimal reproduction?**
### What happens if I don't provide a sufficient minimal reproduction?

Issues with the `please add a complete reproduction` label that receives no meaningful activity (e.g. new comments with a reproduction link) are automatically closed and locked after 30 days.

If your issue has _not_ been resolved in that time and it has been closed/locked, please open a new issue with the required reproduction.

### **I did not open this issue, but it is relevant to me, what can I do to help?**
### I did not open this issue, but it is relevant to me, what can I do to help?

Anyone experiencing the same issue is welcome to provide a minimal reproduction following the above steps. Furthermore, you can upvote the issue using the :+1: reaction on the topmost comment (please **do not** comment "I have the same issue" without reproduction steps). Then, we can sort issues by votes to prioritize.

### **I think my reproduction is good enough, why aren't you looking into it quicker?**
### I think my reproduction is good enough, why aren't you looking into it quicker?

We look into every Next.js issue and constantly monitor open issues for new comments.

However, sometimes we might miss one or two due to the popularity/high traffic of the repository. We apologize, and kindly ask you to refrain from tagging core maintainers, as that will usually not result in increased priority.

Upvoting issues to show your interest will help us prioritize and address them as quickly as possible. That said, every issue is important to us, and if an issue gets closed by accident, we encourage you to open a new one linking to the old issue and we will look into it.

### **Useful Resources**
### Useful Resources

- [How to Contribute to Open Source (Next.js)](https://www.youtube.com/watch?v=cuoNzXFLitc)
- [How to create a Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ An ideal minimal reproduction (_unless relevant_):
- only includes the code necessary to reproduce the issue
- is tested against `next@canary` to make sure your issue has not already been fixed

Generally, the person looking into the reproduction should not require to have prior knowledge of your codebase to be able to help.
**In general, assume that we should not go through a lengthy onboarding process at your company code only to be able to verify an issue.**

If you cannot create a clean reproduction, another way you can help the maintainers' job is to pinpoint the `canary` version of `next` that introduced the issue. Check out our [releases](https://github.com/vercel/next.js/releases), and try to find the first `canary` release that introduced the issue. This will help us narrow down the scope of the issue, and possibly point to the PR/code change that introduced it. You can install a specific version of `next` by running `npm install next@<version>`.

Expand Down
7 changes: 5 additions & 2 deletions .github/actions/issue-validator/package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"private": true,
"exports": "./index.mjs",
"description": "A set of scripts to help with Next.js issue management",
"scripts": {
"build": "ncc -m -o . build src/index.mjs --license licenses.txt"
"build:autolabel": "ncc -m --license licenses.txt build src/autolabel.mjs -o autolabel",
"build:clarify": "ncc -m --license licenses.txt build src/clarify.mjs -o clarify",
"build:repro-link": "ncc -m --license licenses.txt build src/repro-link.mjs -o repro-link",
"build": "pnpm build:autolabel && pnpm build:clarify && pnpm build:repro-link"
},
"devDependencies": {
"@vercel/ncc": "0.34.0",
Expand Down
7 changes: 7 additions & 0 deletions .github/actions/issue-validator/repro-link/index.mjs

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions .github/actions/issue-validator/repro-link/invalid-link.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
We could not detect a valid reproduction link. **Make sure to follow the bug report template carefully.**

### Why was this issue closed?

To be able to investigate, we need access to a reproduction to identify what triggered the issue. We need a link to a **public** GitHub repository ([template for App Router](https://github.com/vercel/next.js/tree/canary/examples/reproduction-template), [template for Pages Router](https://github.com/vercel/next.js/tree/canary/examples/reproduction-template-pages)), but you can also use these templates: [CodeSandbox: App Router](https://codesandbox.io/s/github/vercel/next.js/tree/canary/examples/reproduction-template) or [CodeSandbox: Pages Router](https://codesandbox.io/s/github/vercel/next.js/tree/canary/examples/reproduction-template-pages).

The bug template that you filled out has a section called "Link to the code that reproduces this issue or a replay of the bug", which is where you should provide the link to the reproduction.

- If you did not provide a link or the link you provided is not valid, we will close the issue.
- If you provide a link to a private repository, we will close the issue.
- If you provide a link to a repository but not in the correct section, we will close the issue.

### What should I do?

Depending on the reason the issue was closed, you can do the following:

- If you did not provide a link, please open a new issue with a link to a reproduction.
- If you provided a link to a private repository, please open a new issue with a link to a public repository.
- If you provided a link to a repository but not in the correct section, please open a new issue with a link to a reproduction in the correct section.

**In general, assume that we should not go through a lengthy onboarding process at your company code only to be able to verify an issue.**

### My repository is private and cannot make it public

If you cannot make your repository public, you can create a new repository with the reproduction code. The most common use case we hear for not being able to comply with a public repository is that the repository contains sensitive information/company code. In most cases, this would not be a sufficient **minimal reproduction** anyway, as this codebase might contain a lot of unrelated parts that would make our investigation take longer. Strive for debugging your own code and remove anything unrelated to the issue. Common things to look out for:
styfle marked this conversation as resolved.
Show resolved Hide resolved

- Remove any code that is not related to the issue. (pages, API routes, components, etc.)
- Remove any dependencies that are not related to the issue.
- Remove any third-party service that would require us to sign up for an account to reproduce the issue.
- Remove any environment variables that are not related to the issue.
- Remove private packages that we do not have access to.
- If the issue is not related to a monorepo specifically, try to reproduce the issue without a complex monorepo setup

### I did not open this issue, but it is relevant to me, what can I do to help?

Anyone experiencing the same issue is welcome to provide a minimal reproduction following the above steps by opening a new issue.

### I think my reproduction is good enough, why aren't you looking into it quickly?

We look into every Next.js issue and constantly monitor open issues for new comments.

However, sometimes we might miss one or two due to the popularity/high traffic of the repository. We apologize, and kindly ask you to refrain from tagging core maintainers, as that will usually not result in increased priority.

Upvoting issues to show your interest will help us prioritize and address them as quickly as possible. That said, every issue is important to us, and if an issue gets closed by accident, we encourage you to open a new one linking to the old issue and we will look into it.

### Useful Resources

- [How to Contribute to Open Source (Next.js)](https://www.youtube.com/watch?v=cuoNzXFLitc)
- [How to create a Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve)
- [Reporting a Next.js bug](https://github.com/vercel/next.js/blob/canary/.github/ISSUE_TEMPLATE/1.bug_report.yml)
- [Next.js Triaging issues](https://github.com/vercel/next.js/blob/canary/contributing/repository/triaging.md)
Loading