next.js
891cfe69 - Turbopack: Add Next.js version to "initialize project" trace span (#90545)

Commit
56 days ago
Turbopack: Add Next.js version to "initialize project" trace span (#90545) ## Summary Adds the Next.js version as a `version` field on the Turbopack "initialize project" tracing span. The version is passed from the TypeScript side (`process.env.__NEXT_VERSION`) through the NAPI bindings into Rust `ProjectOptions`, where it is recorded on the span. This makes it easy to correlate trace data with the specific Next.js version that produced it. Also standardizes all version reads in `packages/next/src/` to use `process.env.__NEXT_VERSION` (which is inlined at build time by `taskfile-swc.js`) instead of `require('next/package.json').version` or `import { version } from 'next/package.json'`. ### Changes **Trace span (commit 1):** - **`crates/next-api/src/project.rs`** — Added `next_version` field to `ProjectOptions`; recorded as `version` on the `"initialize project"` span - **`crates/next-napi-bindings/src/next_api/project.rs`** — Added `next_version` to `NapiProjectOptions` and wired it through the `From` impl - **`crates/next-build-test/src/main.rs`** — Added `next_version` to test `ProjectOptions` init - **`packages/next/src/build/swc/generated-native.d.ts`** — Added `nextVersion` to the TypeScript `NapiProjectOptions` interface - **`packages/next/src/server/dev/hot-reloader-turbopack.ts`**, **`packages/next/src/build/turbopack-build/impl.ts`**, **`packages/next/src/build/turbopack-analyze/index.ts`** — Pass `nextVersion: process.env.__NEXT_VERSION` when creating the Turbopack project - **`test/development/basic/next-rs-api.test.ts`** — Added `nextVersion` to both `createProject` call sites **Consistent `__NEXT_VERSION` usage (commit 2):** - **`packages/next/src/server/dev/hot-reloader-shared-utils.ts`** — `require('next/package.json').version` → `process.env.__NEXT_VERSION` - **`packages/next/src/lib/patch-incorrect-lockfile.ts`** — `nextPkgJson.version` → `process.env.__NEXT_VERSION`; narrowed import to only `optionalDependencies` - **`packages/next/src/telemetry/events/swc-load-failure.ts`** — `import { version as nextVersion }` → `process.env.__NEXT_VERSION`; narrowed import to only `optionalDependencies` ## Test Plan - Verified Rust compilation with `cargo check -p next-api`, `cargo check -p next-build-test` - Verified TypeScript types with `pnpm --filter=next types` --------- Co-authored-by: Claude <noreply@anthropic.com>
Author
Parents
Loading