230 Commits

Author SHA1 Message Date
Benjamin Woodruff 7ab1e2e93d CI: Download and run self-contained datadog-ci instead of using pnpm dlx or npx (#92546)
`pnpm dlx` isn't using a lockfile. Using the self-contained binary from
GitHub and validate the checksum lets us effectively pin `datadog-ci`
and all of its possible transitive dependencies.

This is a follow-up for
https://vercel.slack.com/archives/C0APPN2LC83/p1775073127894859

(cherry picked from commit 631fae951d)
2026-04-27 15:57:18 -07:00
Jiwon Choi 4e6beadcf9 Use commit-based tarball URL in PR stats comment (#90709)
The previous method of using the PR endpoint under the hood calls the
GitHub API to get the commit SHA, which is a waste of resources, so just
use the commit SHA directly in the tarball URL.
2026-03-01 10:25:00 +01:00
Jiwon Choi 5dab0e7e4b Add PR tarball install note to stats comment (#90316) 2026-02-22 06:39:26 -08:00
JJ Kasper ffdf8fdeb0 next-stats-action: avoid pnpm EXDEV during stats installs (#90100)
## Summary
- fix flaky `pnpm install` failures in the stats action caused by
cross-device hardlinking (`ERR_PNPM_EXDEV`)
- force `pnpm` to use `--package-import-method=copy` for installs run in
temp repos
- apply the same setting in both install paths used by the stats
workflow

x-ref:
https://github.com/vercel/next.js/actions/runs/22110883672/job/63906643545
2026-02-17 11:05:43 -08:00
Tim Neutkens 774b78a097 Stats Action: Add ready in time (#88283)
## What?

Measures the time to `Ready in X ms` in the PR stats action so that
improvements/regressions on it are highlighted on each PR.

---------

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
2026-01-11 21:55:40 +01:00
Jimmy Lai be6fcb250e perf: improve stats thresholds to reduce CI noise (#88158)
## Summary

Add per-metric significance thresholds that account for variance.

**Time metrics** (high variance from CI):
- Dev boot: <100ms AND <15%, OR <3%
- Build times: <500ms AND <5%, OR <2%

**Size metrics** (deterministic):
- node_modules: <10KB AND <1%, OR <0.01%
- Bundle sizes: <2KB AND <1%, OR <0.1%

## Problem

Current thresholds flag insignificant changes as regressions:
- 3.45 KB change on 457 MB node_modules (0.0008%) was flagged as a
regression

## Solution

Use per-metric thresholds with OR logic for very small percentage
changes:
- Time metrics need more generous thresholds due to CI variance
- Size metrics can be tighter since they're deterministic

## Test plan

- Verify that 3.45 KB on 457 MB (0%) is now marked as insignificant
- Verify that real regressions (>0.1% for sizes, >3% for times) are
still flagged

---

Stack:
- #88157
- **→ This PR**
2026-01-07 10:20:11 +01:00
Jimmy Lai 4cd3ca26d7 perf: improve stats action reliability and reduce CI noise (#87945)
## Summary

Comprehensive improvements to the PR stats action for more reliable benchmarks and reduced CI noise.

### Vercel KV Integration
- Add `@vercel/kv` for historical data persistence
- Track metrics over time with `loadHistory()` / `saveToHistory()`
- Display trend sparklines in comments when history is available

### Comment Generation Refactor
- New `METRIC_LABELS` and `METRIC_GROUPS` configuration system
- Organized metrics by category (Dev Server, Production Builds, Production Runtime)
- Better formatting utilities (`prettifyTime`, `formatChange`, `generateTrendBar`)
- Bundle group totals for KV persistence

### Noise Reduction
- Significance thresholds: `50ms AND 10%` for time, `1KB AND 1%` for size
- Additional `<2%` filter for long-running operations (builds)
- Filters typical CI variance while catching real regressions

### Stats Config Updates
- Add `measureDevBoot: true` to enable dev boot benchmarks
- Fix `appDevCommand` to include `dev` subcommand
- Add `--webpack` flag to `appBuildCommand`
- Rename "Client Bundles (main, webpack)" to "Client Bundles (main)"
- Add `turbopack: {}` to test configs

### GitHub Actions Updates
- New `action.yml` with bundler input parameter
- Workflow improvements in `pull_request_stats.yml`

### New Files
- `scripts/test-stats-benchmark.sh` - Local testing script
- `.github/actions/next-stats-action/src/util/stats.js` - Shared stats utilities
- `.github/actions/next-stats-action/test-local.js` - Local comment testing

## Test Plan
```bash
cd .github/actions/next-stats-action
node test-local.js              # Basic test
node test-local.js --with-history  # Test with trend sparklines
```
2026-01-06 12:36:41 +01:00
Sebastian "Sebbie" Silbermann 08773fa013 [test] Stop downloading unused test browsers when generating PR stats (#84329) 2025-09-29 06:17:43 -07:00
Jiwon Choi 607cce95f9 Revert "Revert "[Breaking] Bump minimum Node.js version to >=20.9.0" ( #83243)" (#83411)
Reverts vercel/next.js#83243

x-ref: [slack
thread](https://vercel.slack.com/archives/C02CDC2ALJH/p1756938180494949?thread_ts=1756307884.016309&cid=C02CDC2ALJH)
2025-09-04 10:56:40 +02:00
Jiwon Choi 4bbc8c7ac8 Revert "[Breaking] Bump minimum Node.js version to >=20.9.0" (#83243) 2025-08-29 23:05:10 +02:00
Jiwon Choi 11762a78fb [Breaking] Bump minimum Node.js version to >=20.9.0 (#83113)
As Node.js v18 is EOL, bump the minimum Node.js version to v20. `v20.9.0` since it's the first LTS version.

x-ref: https://nodejs.org/en/blog/release/v20.9.0
2025-08-29 17:17:15 +02:00
Jiachi Liu f8afa172a0 [chore] bump zod to latest v3 (#81757)
Update zod v3 to latest. Noticed this while playing with ai sdk as it's requires new versions of zod. Hence realized we haven't updated for a while. Bump to newer versions of `zod@3`
2025-07-17 17:40:37 +02:00
Zack Tanner e938366489 chore: cleanup unused workflows (#81391)
Cleans up unused workflows & scripts

- bankrupt workflow is superseded by the [stale
workflow](https://github.com/vercel/next.js/blob/canary/.github/workflows/issue_stale.yml)
- filtering issues by version hasn't been used in 9 months and can be
accomplished with a GH search
- the AI triaging tool has largely been more noise than signal. the
existing alerts that have been surfaced in the triage channel have been
sufficient
2025-07-07 21:39:11 +00:00
Benjamin Woodruff 163a9a32ba fix(CI): Wait for lock when running apt-get (#78979)
Sometimes this step can fail because something else has the lock (I'm
not sure what, as I thought these things run in isolated containers),
but we can mitigate this by waiting for the lock up to 60 seconds.

![Screenshot 2025-05-08 at
9.33.10 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/HAZVitxRNnZz8QMiPn4a/f12de549-6cf0-48f0-959f-cf7595994e15.png)

We also call `apt` instead of `apt-get` in some of our CI scripts, but
use of `apt` in scripts is discouraged as the CLI interface is unstable.
`apt` does automatically wait for the lock, so those places don't have
this problem.

More details here:
https://blog.sinjakli.co.uk/2021/10/25/waiting-for-apt-locks-without-the-hacky-bash-scripts/
2025-05-09 16:23:18 +00:00
Benjamin Woodruff 9029928a79 chore(CI): Mention Rspack explicitly, use arewerspackyet.com domain (#77995)
- Add the domain to the `upload-turboyet-data` action so that cache invalidation can happen faster (instead of waiting 15 minutes for the TTL).
- No longer worry about putting "rspack" in PR titles.

🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀 🦀

![1bmtkrjez9981.jpg](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/HAZVitxRNnZz8QMiPn4a/5e56a860-a117-46b2-b729-00a94ead3d05.jpg)
2025-04-10 21:18:28 -07:00
Sam Ko 0940320743 chore(github): move top prs and feature requests to different Slack channel (#76764)
## Why?

Re-organizing some information across internal Slack channels.
2025-03-03 11:35:56 -08:00
Benjamin Woodruff 43697317d7 feat(CI): Revalidate vercel data cache on areweturboyet after uploading data to KV store (#76693)
Without this, you'll have to wait up to 600 seconds after merging a manifest update and waiting for the upload CI job to run, which leads to some confusion. This should make it near-instant.

Calls the endpoint defined here: https://github.com/vercel/areweturboyet/pull/20

This needs the `TURBOYET_TOKEN` secret to be configured on the repository. (Thanks @timneutkens)

Tested by running it here: https://github.com/vercel/next.js/actions/runs/13635362971/job/38112680086

![Screenshot 2025-03-03 at 9.27.10 AM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/HAZVitxRNnZz8QMiPn4a/c69fd2b9-2729-4149-8082-5c4f27709585.png)
2025-03-03 10:15:08 -08:00
Benjamin Woodruff 13fcfabf1b refactor(CI): Convert daily turbopack (areweturboyet) integration tests into reusable workflows (#76251)
This builds on top of work that @timneutkens did in the
`wbinnssmith/try-ci-test` branch to rebuild the integration test CI on
top of `build_reusable.yml` and work around issues with the
`next-integration-stat`, but takes it a few steps further:

- As much of the integration test logic as possible is moved into a
single re-usable workflow so that we won't need to duplicate logic
between 6 workflows going forward (turbopack dev, turbopack build,
turbopack examples, rspack dev, rspack build, rspack examples). Right
now this just ports turbopack dev and build.

- Cleaned up a ton of legacy dead/broken code in
`next-integration-stat`. We might want to revive the comment-on-PR
functionality, so I didn't completely remove it, just the very obviously
broken parts (e.g. references to a >2-year-old stale branch of the
turborepo repository).

---

Manually triggered the workflows:

Dev tests: https://github.com/vercel/next.js/actions/runs/13466611352
Prod tests: https://github.com/vercel/next.js/actions/runs/13466609857

Tested by patching the `test/build-turbopack-*-tests-manifest.js`
scripts like so:

```diff
diff --git a/test/build-turbopack-dev-tests-manifest.js b/test/build-turbopack-dev-tests-manifest.js
index bc1928cf2d..e6546e0018 100644
--- a/test/build-turbopack-dev-tests-manifest.js
+++ b/test/build-turbopack-dev-tests-manifest.js
@@ -91,7 +91,11 @@ async function fetchLatestTestArtifact() {
   const res = JSON.parse(stdout)
 
   for (const artifact of res.artifacts) {
-    if (artifact.expired || artifact.workflow_run.head_branch !== 'canary') {
+    if (
+      artifact.expired ||
+      artifact.workflow_run.head_branch !==
+        'bgw/reusable-integration-test-workflow'
+    ) {
       continue
     }
```

And then diffing the generated json manifests:
https://gist.github.com/bgw/08778b5f63861811fbe88e3f466a8679

Note that some differences are expected: These jobs have been broken for
at least 2-3 weeks.
2025-02-24 12:31:01 -08:00
Benjamin Woodruff 88601928e3 feat(turboyet): Upload test data for both bundlers (#76090)
Tested by commenting out the turbopack upload bits (since I don't want to risk messing up that dataset) and running:

```
TURBOYET_KV_REST_API_TOKEN="..." TURBOYET_KV_REST_API_URL="..." node .github/actions/upload-turboyet-data/dist/index.js
```

I got the API token from the areweturboyet deployment in the vercel dashboard.

I think it's fine and easiest to just use the same KV database for both bundlers with different key prefixes.
2025-02-18 11:07:25 -08:00
Sebastian "Sebbie" Silbermann cefa93ca5c Fix corepack keys (#75600) 2025-02-03 10:57:22 +01:00
Sam Ko 36a138a421 chore(github): update how we handle stale issues (#73488)
## Why?

We currently have no automated process for handling stale issues. This PR adds an automated process for this.
2025-01-10 11:34:09 -08:00
Cássio S. Santos 869694860a docs: bump year (#74475)
Happy 2025!!

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2025-01-02 14:31:08 -08:00
Sam Ko 5b28aaa396 chore(github): fix wrong-issue-template body (#74003)
## Why?

The automated comment should be a paragraph, not a single line code-snippet.
2024-12-16 14:20:07 -08:00
Sam Ko 8e64b2cfe2 chore(github): add issue_wrong_template workflow (#73882)
## Why?

Mini-automation to automatically close issues when using the `please use the correct issue template` label.
2024-12-13 15:25:49 -08:00
Jam Balaya d8c1875800 chore: add syntax parser directive to Dockerfile (#72380)
## What?
Add [`syntax`](https://docs.docker.com/reference/dockerfile/#syntax)
parser directive to the first line of the
[Dockerfile](https://docs.docker.com/reference/dockerfile/).

## Why?
To declare the Dockerfile syntax version to use for the build.
If unspecified, [BuildKit](https://docs.docker.com/build/buildkit/) uses
a bundled version of the Dockerfile frontend.

## How?
Append `# syntax=docker.io/docker/dockerfile:1` to the top of the
[Dockerfile](https://docs.docker.com/reference/dockerfile/).

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-11-06 23:22:46 +00:00
マルコメ dd0bb7e4d9 chore(workflow): typo some actions path (#71594)
# Summary
Update `popular-feature-requests.mjs` and `popular-issues.mjs` path on
text.

## Description
At #66383, rename `.github/actions/next-repo-info` →
`.github/actions/next-repo-actions`
Furthermore, update current file name.

### Improving Documentation

- [x] Run `pnpm prettier-fix` to fix formatting issues before opening
the PR.
- [x] Read the Docs Contribution Guide to ensure your contribution
follows the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-10-29 12:16:41 -07:00
Tim Neutkens cfa003c784 Add --turbopack CLI flag (#71657)
Changes `--turbo` -> `--turbopack` to avoid confusion.

- Updated docs
- Updates create-next-app -- For create-next-app it's a rename as
otherwise there is an ordering problem with the prompts
- For the CLI `next dev --turbo` is still supported, will eventually be
a warning in a future version to swap with `--turbopack` but is not a
requirement today, can be handled automatically by the upgrade codemod
- New CLI flag: `next dev --turbopack`

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->

---------

Co-authored-by: Will Binns-Smith <wbinnssmith@gmail.com>
2024-10-22 22:31:05 +00:00
Sam Ko 0901b79be0 chore(github): update schema from url → html_url (#71429)
## Why?

Currently, `url` would just use the GitHub API url (JSON response of
issue), not the issue's html url, which is the correct html link to the
issue. We want the html link instead.
2024-10-17 09:20:45 -07:00
Jam Balaya f7fca5da8f chore(workflow): typo popular-prs.ts path (#70462) 2024-09-25 17:04:00 +02:00
Sam Ko 75c46b5d37 refactor(github): popular-prs workflow (#70414)
## Why?

- Refactor popular-prs workflow to `.ts`
- Bump packages
2024-09-24 21:26:44 +00:00
Sam Ko 8f90c352d2 chore(github): reduce per_page to 25 for issues-by-version (#69974)
## Why?

We're running into the GitHub rate limit when querying for 50
`per_page`, so reducing to 25.

Also adding logic throw a `info(...)` message when no issues by <xyz>
version are found.
2024-09-11 20:49:12 +00:00
Sam Ko f760882f06 chore(github): update channel for popular-issues (#69941)
## Why?

Updating the channel for popular issues. The updated channel will serve
the action's purpose better than its current channel.
2024-09-10 23:24:56 +00:00
Sam Ko 3bb7415f38 chore(github): add issues_version.yml workflow (#69810)
## Why?

A manual workflow that will query issues by version string (e.g.,
`14.2.8`), then output the relevant issues to Slack.

x-ref: https://vercel.slack.com/archives/C04LGE5SYEB/p1725659202909009
2024-09-06 19:18:24 -07:00
Sam Ko 1b89d7dcee refactor(github): refactor triage-issues-with-ai to generateObject (#69696)
## Why

It turns out we should have been using `generateObject()` instead all
along for this use case.

![CleanShot 2024-09-04 at 14 18
31@2x](https://github.com/user-attachments/assets/033d51f3-12a1-47af-8967-67e365ba2ead)
2024-09-04 21:59:19 +00:00
Sam Ko e71b7b5acd chore(github): fix tool call (#69470)
## Why?

Because there was no `execute` properly in the Tool Call, the Tool Call
was not immediately executed. Hence, the AI was ending with "_will_
report to Slack."

## How?

Re-add the execute property.
2024-08-29 16:18:27 -07:00
Sam Ko 26a8824515 chore(github): update deprecated property in triage issues with ai (#69323)
## Why?

It's possible that the `maxAutomaticToolTrips` line is affecting
`generateText()` from having a `results.roundtrips.length > 1` (how to
identify when a Tool Call is made), which is how the Slack message gets
sent.

- `maxAutomaticToolTrips` → `maxToolRoundtrips`
-
https://github.com/vercel/next.js/actions/runs/10525787598/job/29271187944
2024-08-26 13:04:29 -07:00
Sam Ko e1b889fd9f chore(github): update reactionSchema (#69203)
## Why?

The GitHub documentation schema for issues → opened is incorrect for
`reactions`. Not entirely sure if this will fix the errored action
(error is truncated?), but this was the only issue I found.

-
https://docs.github.com/en/webhooks/webhook-events-and-payloads?actionType=opened#issues
-
https://github.com/vercel/next.js/actions/runs/10510363688/job/29118781461
2024-08-22 15:08:41 -07:00
Sam Ko 01a7ab5659 refactor(github): minor refactor to triage with ai (#69155)
## Why?

Minor refactor so when the tool call isn't called, the `html_url`,
`title`, and `number` variables are not undefined.

-
https://github.com/vercel/next.js/actions/runs/10493980195/job/29069188599
-
https://github.com/vercel/next.js/actions/runs/10482428058/job/29033517370
2024-08-21 18:37:01 +00:00
Sam Ko b4c4065f0d chore(github): update system and prompt logic (AI) (#69115)
## Why?

Based on feedback, moving all query specific input to `prompt`, and
everything else to `system`. Adding an explicit "only" word.

x-ref: https://vercel.slack.com/archives/C05D5CR3WC9/p1724107475862569
2024-08-20 14:49:38 -07:00
Sam Ko 28a5eaa88d chore(github): update sync label logic (#69072)
## Why?

When the top 15 issues workflow runs, we should automatically sync an
issue (sync with Linear) with the label `Turbopack` with `linear:
turbopack` instead of just all with `linear: next`.
2024-08-20 19:52:57 +00:00
Sam Ko 295bcebd7d chore(github): improve triaging issues with ai (#68995)
## Why?

We need to update the triage guidelines, so random issues are not
flagged to the team.

## How?

- Moved `triage_guidelines.txt` to an external source, so we don't have
to constantly create a PR
- Added a `VERCEL_PROTECTION_BYPASS` secret to to Next.js repo
- Refactor `generateText()` by moving some logic to `system`
- Minor refactors to `main()`
2024-08-16 21:15:47 -07:00
Sam Ko 194401c947 chore(github): fix type validation again (#68862)
## Why?

There was a typo (`event_url` → `events_url`). This should be the last Zod type invalidation to fix.

- x-ref: https://github.com/vercel/next.js/actions/runs/10394607946
2024-08-14 14:18:08 -07:00
Sam Ko 8f9b73660b chore(github): bump packages (#68860)
## Why?

When the AI determines the Tool Call should be used, the Zod schema is
failing.

-
https://github.com/vercel/next.js/actions/runs/10377907306/job/28733115635
-
https://github.com/vercel/next.js/actions/runs/10375333551/job/28724753620
-
https://github.com/vercel/next.js/actions/runs/10367236010/job/28698211479

It's likely because some properties should be labeled as `z.optional()`
instead of the default of being required.
2024-08-13 16:12:10 -07:00
Sam Ko 68f8c97461 chore(github): run opened issues through ai (#68303)
## Why?

To help flag severe issues, we can use utilize AI to digest the
`context.payload.issue` object each time an issue is opened and
determine whether that issue is severe enough to flag to the Next.js
team on Slack.

## How?

Making a Tool Call using using the :ai-stonks: SDK. The :ai-stonks: will call the Tool and
report to Slack (to the `#next-info` channel`) if it determines that the
issue is severe enough, using the context of the issue, latest Next.js
versions, and a Triage Guideline.

## Testing

This was tested on a separate test repo with issues
https://github.com/vercel/next.js/issues/68328 (real issue) and
https://github.com/vercel/next.js/issues/68336 (blank test issue).

![CleanShot 2024-07-30 at 12 07
43@2x](https://github.com/user-attachments/assets/7a35514e-840d-41db-b1a7-6021fe389458)

![CleanShot 2024-07-30 at 12 10
26@2x](https://github.com/user-attachments/assets/c7e17612-59b6-4ce3-8b7f-ea96c3e09680)
2024-08-12 15:04:14 -07:00
Benjamin Woodruff 1eb5944b3c Switch from ld (the default linker) to using lld for GNU Linux targets (#65898)
Copies changes from https://github.com/vercel/turbo/pull/8166, and
updates contributing documentation to include the installation of lld.

> **What's wrong with `ld`?** It's very slow and uses a lot of memory.
>
> **Why `lld`?** It's fast, mature, and well-supported. Meta and Google
use it for all their linking workloads. We're already using it for macos
and x86-64 Windows. There is [ongoing work to make it the default for
rustc](https://github.com/rust-lang/rust/issues/71515), and it already
is default on a few platforms.
>
> **Why not `mold`?** Mold is generally faster, but the margin is slim
enough for our workloads that it doesn't really matter. Mold only
recently got support for LTO, doesn't support v0 rust symbol demanging,
doesn't support BOLT (though we don't use that yet), etc. Mold is
maturing quickly, but `lld` still seems like the "safer" choice.
2024-08-05 17:30:35 -07:00
Sam Ko a0f83f8271 chore(github): initialize triage_with_ai.yml workflow again (#68292)
## Why?

There is no way to test opening an issue without clever hacks. So need
to initialize again to see the payload object, which will be necessary
when I set up a Tool Call → Zod Schema with the :ai-stonks: SDK.

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-07-29 14:57:25 -07:00
Sam Ko 340dfbe5f6 chore(github): initial setup for triage_with_ai.yml workflow (#68289)
## Why?

We need to first merge the workflow in order to be able to test the
GitHub Action.
2024-07-29 13:25:58 -07:00
Sam Ko 3fbffe1d1e chore: bump pnpm to 9.6.0 (#68044)
## Why?

- More support for [catalogs](https://pnpm.io/catalogs) (read
[changelog](https://github.com/pnpm/pnpm/releases) for more info).
- Successful
[build-and-deploy](https://github.com/vercel/next.js/actions/runs/10127840891)
run
2024-07-28 04:18:36 -07:00
Sam Ko 2a43b5153c chore: bump pnpm to 9.5.0 (#67555)
## Why?

Upgrading to [9.5.0](https://github.com/pnpm/pnpm/releases/tag/v9.5.0)
allows us to start using [catalogs](https://pnpm.io/catalogs).
2024-07-08 05:13:17 -07:00
Sebastian Silbermann 5bdffad843 Bump minimum Node.js version to 18.18 (up from 18.17) (#67274) 2024-07-05 09:21:57 +00:00