Skip to content

Commit 7040a15

Browse files
authored
Merge pull request #16688 from getsentry/prepare-release/9.31.0
meta(changelog): Update changelog for 9.31.0
2 parents c0fb319 + 58337ea commit 7040a15

File tree

288 files changed

+2934
-761
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

288 files changed

+2934
-761
lines changed

.claude/settings.local.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(find:*)",
5+
"Bash(ls:*)",
6+
"Bash(git:*)",
7+
"Bash(yarn:*)",
8+
"WebFetch(domain:github.com)",
9+
"Bash(grep:*)",
10+
"Bash(mv:*)"
11+
],
12+
"deny": []
13+
}
14+
}

.cursor/rules/publishing_release.mdc

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
description: Use this rule if you are looking to publish a release for the Sentry JavaScript SDKs
3+
globs:
4+
alwaysApply: false
5+
---
6+
# Publishing a Release
7+
8+
Use these guidelines when publishing a new Sentry JavaScript SDK release.
9+
10+
## Standard Release Process (from develop to master)
11+
12+
The release process is outlined in [publishing-a-release.md](mdc:docs/publishing-a-release.md).
13+
14+
1. Make sure you are on the latest version of the `develop` branch. To confirm this, run `git pull origin develop` to get the latest changes from the repo.
15+
2. Run `yarn changelog` on the `develop` branch and copy the output. You can use `yarn changelog | pbcopy` to copy the output of `yarn changelog` into your clipboard.
16+
3. Decide on a version for the release based on [semver](mdc:https://semver.org). The version should be decided based on what is in included in the release. For example, if the release includes a new feature, we should increment the minor version. If it includes only bug fixes, we should increment the patch version.
17+
4. Create a branch `prepare-release/VERSION`, eg. `prepare-release/8.1.0`, off `develop`.
18+
5. Update [CHANGELOG.md](mdc:CHANGELOG.md) to add an entry for the next release number and a list of changes since the last release from the output of `yarn changelog`. See the `Updating the Changelog` section in [publishing-a-release.md](mdc:docs/publishing-a-release.md) for more details. If you remove changelog entries because they are not applicable, please let the user know.
19+
6. Commit the changes to [CHANGELOG.md](mdc:CHANGELOG.md) with `meta(changelog): Update changelog for VERSION` where `VERSION` is the version of the release, e.g. `meta(changelog): Update changelog for 8.1.0`
20+
7. Push the `prepare-release/VERSION` branch to origin and remind the user that the release PR needs to be opened from the `master` branch.
21+
22+
## Key Commands
23+
24+
- `yarn changelog` - Generate changelog entries
25+
- `yarn lint` - Ensure code quality
26+
- `yarn test` - Run test suite
27+
- `yarn build:dev` - Verify build
28+
29+
## Important Notes
30+
31+
- This repository uses **Git Flow** - target `develop` for feature PRs, not `master`. See [gitflow.md](mdc:docs/gitflow.md) for more details.
32+
- For first-time SDK releases, follow the New SDK Release Checklist [new-sdk-release-checklist.md](mdc:docs/new-sdk-release-checklist.md). If you notice there is something not following the new SDK release checklist, please remind the user.

.cursor/rules/sdk_development.mdc

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
---
2+
description: Guidelines for working on the Sentry JavaScript SDK monorepo
3+
alwaysApply: true
4+
---
5+
6+
# SDK Development Rules
7+
8+
You are working on the Sentry JavaScript SDK, a critical production SDK used by thousands of applications. Follow these rules strictly.
9+
10+
## Code Quality Requirements (MANDATORY)
11+
12+
**CRITICAL**: All changes must pass these checks before committing:
13+
14+
1. **Always run `yarn lint`** - Fix all linting issues
15+
2. **Always run `yarn test`** - Ensure all tests pass
16+
3. **Always run `yarn build:dev`** - Verify TypeScript compilation
17+
18+
## Development Commands
19+
20+
### Build Commands
21+
- `yarn build` - Full production build with package verification
22+
- `yarn build:dev` - Development build (transpile + types)
23+
- `yarn build:dev:watch` - Development build in watch mode (recommended)
24+
- `yarn build:dev:filter <package>` - Build specific package and dependencies
25+
- `yarn build:types:watch` - Watch mode for TypeScript types only
26+
- `yarn build:bundle` - Build browser bundles only
27+
28+
### Testing
29+
- `yarn test` - Run all tests (excludes integration tests)
30+
- `yarn test:unit` - Run unit tests only
31+
- `yarn test:pr` - Run tests affected by changes (CI mode)
32+
- `yarn test:pr:browser` - Run affected browser-specific tests
33+
- `yarn test:pr:node` - Run affected Node.js-specific tests
34+
35+
### Linting and Formatting
36+
- `yarn lint` - Run ESLint and Prettier checks
37+
- `yarn fix` - Auto-fix linting and formatting issues
38+
- `yarn lint:es-compatibility` - Check ES compatibility
39+
40+
## Git Flow Branching Strategy
41+
42+
This repository uses **Git Flow**. See [docs/gitflow.md](docs/gitflow.md) for details.
43+
44+
### Key Rules
45+
- **All PRs target `develop` branch** (NOT `master`)
46+
- `master` represents the last released state
47+
- Never merge directly into `master` (except emergency fixes)
48+
- Avoid changing `package.json` files on `develop` during pending releases
49+
50+
### Branch Naming
51+
- Features: `feat/descriptive-name`
52+
- Releases: `release/X.Y.Z`
53+
54+
## Repository Architecture
55+
56+
This is a Lerna monorepo with 40+ packages in the `@sentry/*` namespace.
57+
58+
### Core Packages
59+
- `packages/core/` - Base SDK with interfaces, type definitions, core functionality
60+
- `packages/types/` - Shared TypeScript type definitions (active)
61+
- `packages/browser-utils/` - Browser-specific utilities and instrumentation
62+
63+
### Platform SDKs
64+
- `packages/browser/` - Browser SDK with bundled variants
65+
- `packages/node/` - Node.js SDK with server-side integrations
66+
- `packages/bun/`, `packages/deno/`, `packages/cloudflare/` - Runtime-specific SDKs
67+
68+
### Framework Integrations
69+
- Framework packages: `packages/{framework}/` (react, vue, angular, etc.)
70+
- Client/server entry points where applicable (nextjs, nuxt, sveltekit)
71+
- Integration tests use Playwright (Remix, browser-integration-tests)
72+
73+
### User Experience Packages
74+
- `packages/replay-internal/` - Session replay functionality
75+
- `packages/replay-canvas/` - Canvas recording for replay
76+
- `packages/replay-worker/` - Web worker support for replay
77+
- `packages/feedback/` - User feedback integration
78+
79+
### Development Packages (`dev-packages/`)
80+
- `browser-integration-tests/` - Playwright browser tests
81+
- `e2e-tests/` - End-to-end tests for 70+ framework combinations
82+
- `node-integration-tests/` - Node.js integration tests
83+
- `test-utils/` - Shared testing utilities
84+
- `bundle-analyzer-scenarios/` - Bundle analysis
85+
- `rollup-utils/` - Build utilities
86+
- GitHub Actions packages for CI/CD automation
87+
88+
## Development Guidelines
89+
90+
### Build System
91+
- Uses Rollup for bundling (`rollup.*.config.mjs`)
92+
- TypeScript with multiple tsconfig files per package
93+
- Lerna manages package dependencies and publishing
94+
- Vite for testing with `vitest`
95+
96+
### Package Structure Pattern
97+
Each package typically contains:
98+
- `src/index.ts` - Main entry point
99+
- `src/sdk.ts` - SDK initialization logic
100+
- `rollup.npm.config.mjs` - Build configuration
101+
- `tsconfig.json`, `tsconfig.test.json`, `tsconfig.types.json`
102+
- `test/` directory with corresponding test files
103+
104+
### Key Development Notes
105+
- Uses Volta for Node.js/Yarn version management
106+
- Requires initial `yarn build` after `yarn install` for TypeScript linking
107+
- Integration tests use Playwright extensively
108+
- Native profiling requires Python <3.12 for binary builds
109+
110+
## Testing Single Packages
111+
- Test specific package: `cd packages/{package-name} && yarn test`
112+
- Build specific package: `yarn build:dev:filter @sentry/{package-name}`
113+
114+
## Code Style Rules
115+
- Follow existing code conventions in each package
116+
- Check imports and dependencies - only use libraries already in the codebase
117+
- Look at neighboring files for patterns and style
118+
- Never introduce code that exposes secrets or keys
119+
- Follow security best practices
120+
121+
## Before Every Commit Checklist
122+
1. ✅ `yarn lint` (fix all issues)
123+
2. ✅ `yarn test` (all tests pass)
124+
3. ✅ `yarn build:dev` (builds successfully)
125+
4. ✅ Target `develop` branch for PRs (not `master`)
126+
127+
## Documentation Sync
128+
**IMPORTANT**: When editing CLAUDE.md, also update .cursor/rules/sdk_development.mdc and vice versa to keep both files in sync.

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ body:
5050
- '@sentry/nestjs'
5151
- '@sentry/nextjs'
5252
- '@sentry/nuxt'
53+
- '@sentry/pino-transport'
5354
- '@sentry/react'
5455
- '@sentry/react-router'
5556
- '@sentry/remix'

.github/workflows/build.yml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -415,8 +415,6 @@ jobs:
415415
if: needs.job_build.outputs.changed_bun == 'true' || github.event_name != 'pull_request'
416416
timeout-minutes: 10
417417
runs-on: ubuntu-24.04
418-
strategy:
419-
fail-fast: false
420418
steps:
421419
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
422420
uses: actions/checkout@v4
@@ -442,8 +440,6 @@ jobs:
442440
if: needs.job_build.outputs.changed_deno == 'true' || github.event_name != 'pull_request'
443441
timeout-minutes: 10
444442
runs-on: ubuntu-24.04
445-
strategy:
446-
fail-fast: false
447443
steps:
448444
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
449445
uses: actions/checkout@v4
@@ -475,7 +471,7 @@ jobs:
475471
strategy:
476472
fail-fast: false
477473
matrix:
478-
node: [18, 20, 22, '^24.0.1']
474+
node: [18, 20, 22, 24]
479475
steps:
480476
- name: Check out base commit (${{ github.event.pull_request.base.sha }})
481477
uses: actions/checkout@v4
@@ -885,18 +881,11 @@ jobs:
885881
ref: ${{ env.HEAD_COMMIT }}
886882
- uses: pnpm/action-setup@v4
887883
with:
888-
version: 9.4.0
889-
# TODO: Remove this once the repo is bumped to 20.19.2 or higher
890-
- name: Set up Node for Angular 20
891-
if: matrix.test-application == 'angular-20'
892-
uses: actions/setup-node@v4
893-
with:
894-
node-version: '20.19.2'
884+
version: 9.15.9
895885
- name: Set up Node
896-
if: matrix.test-application != 'angular-20'
897886
uses: actions/setup-node@v4
898887
with:
899-
node-version-file: 'dev-packages/e2e-tests/package.json'
888+
node-version-file: 'dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/package.json'
900889
- name: Set up Bun
901890
if: matrix.test-application == 'node-exports-test-app'
902891
uses: oven-sh/setup-bun@v2
@@ -1012,11 +1001,11 @@ jobs:
10121001
ref: ${{ env.HEAD_COMMIT }}
10131002
- uses: pnpm/action-setup@v4
10141003
with:
1015-
version: 9.4.0
1004+
version: 9.15.9
10161005
- name: Set up Node
10171006
uses: actions/setup-node@v4
10181007
with:
1019-
node-version-file: 'dev-packages/e2e-tests/package.json'
1008+
node-version-file: 'dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/package.json'
10201009
- name: Restore caches
10211010
uses: ./.github/actions/restore-cache
10221011
with:

.github/workflows/canary.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,12 @@ jobs:
125125
ref: ${{ env.HEAD_COMMIT }}
126126
- uses: pnpm/action-setup@v4
127127
with:
128-
version: 9.4.0
129-
# TODO: Remove this once the repo is bumped to 20.19.2 or higher
130-
- name: Set up Node for Angular 20
131-
if: matrix.test-application == 'angular-20'
132-
uses: actions/setup-node@v4
133-
with:
134-
node-version: '20.19.2'
128+
version: 9.15.9
135129
- name: Set up Node
136130
if: matrix.test-application != 'angular-20'
137131
uses: actions/setup-node@v4
138132
with:
139-
node-version-file: 'dev-packages/e2e-tests/package.json'
133+
node-version-file: 'dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/package.json'
140134

141135
- name: Restore canary cache
142136
uses: actions/cache/restore@v4

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,33 @@
44

55
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
66

7+
## 9.31.0
8+
9+
### Important Changes
10+
11+
- feat(nextjs): Add option for auto-generated random tunnel route ([#16626](https://github.com/getsentry/sentry-javascript/pull/16626))
12+
13+
Adds an option to automatically generate a random tunnel route for the Next.js SDK. This helps prevent ad blockers and other tools from blocking Sentry requests by using a randomized path instead of the predictable `/monitoring` endpoint.
14+
15+
- feat(core): Allow to pass `scope` & `client` to `getTraceData` ([#16633](https://github.com/getsentry/sentry-javascript/pull/16633))
16+
17+
Adds the ability to pass custom `scope` and `client` parameters to the `getTraceData` function, providing more flexibility when generating trace data for distributed tracing.
18+
19+
### Other Changes
20+
21+
- deps: Remove unused `@sentry/opentelemetry` dependency ([#16677](https://github.com/getsentry/sentry-javascript/pull/16677))
22+
- deps: Update all bundler plugin instances to latest & allow caret ranges ([#16641](https://github.com/getsentry/sentry-javascript/pull/16641))
23+
- feat(deps): Bump @prisma/instrumentation from 6.8.2 to 6.9.0 ([#16608](https://github.com/getsentry/sentry-javascript/pull/16608))
24+
- feat(flags): add node support for generic featureFlagsIntegration and move utils to core ([#16585](https://github.com/getsentry/sentry-javascript/pull/16585))
25+
- feat(flags): capture feature flag evaluations on spans ([#16485](https://github.com/getsentry/sentry-javascript/pull/16485))
26+
- feat(pino): Add initial package for `@sentry/pino-transport` ([#16652](https://github.com/getsentry/sentry-javascript/pull/16652))
27+
- fix: Wait for the correct clientWidth/clientHeight when showing Feedback Screenshot previews ([#16648](https://github.com/getsentry/sentry-javascript/pull/16648))
28+
- fix(browser): Remove usage of Array.at() method ([#16647](https://github.com/getsentry/sentry-javascript/pull/16647))
29+
- fix(core): Improve `safeJoin` usage in console logging integration ([#16658](https://github.com/getsentry/sentry-javascript/pull/16658))
30+
- fix(google-cloud-serverless): Make `CloudEvent` type compatible ([#16661](https://github.com/getsentry/sentry-javascript/pull/16661))
31+
- fix(nextjs): Fix lookup of `instrumentation-client.js` file ([#16637](https://github.com/getsentry/sentry-javascript/pull/16637))
32+
- fix(node): Ensure graphql errors result in errored spans ([#16678](https://github.com/getsentry/sentry-javascript/pull/16678))
33+
734
## 9.30.0
835

936
- feat(nextjs): Add URL to tags of server components and generation functions issues ([#16500](https://github.com/getsentry/sentry-javascript/pull/16500))

0 commit comments

Comments
 (0)