Skip to content

meta(changelog): Update changelog for 9.32.0 #16729

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

Merged
merged 26 commits into from
Jun 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
09aec61
feat(core): Add support for `x-forwarded-host` and `x-forwarded-proto…
s1gr1d Jun 23, 2025
5fba331
chore: Add @sentry/opentelemetry resolution back to remix integration…
andreiborza Jun 23, 2025
0bee39d
Merge pull request #16696 from getsentry/master
github-actions[bot] Jun 23, 2025
6858602
feat(cloudflare): Add `instrumentWorkflowWithSentry` to instrument wo…
timfish Jun 23, 2025
29d35b4
feat(deps): bump @prisma/instrumentation from 6.9.0 to 6.10.1 (#16698)
dependabot[bot] Jun 23, 2025
e2c01ce
bump up import-in-the-middle
betegon Jun 23, 2025
ffb5511
fix(node): account for Object. syntax with local variables matching (…
AbhiPrasad Jun 23, 2025
e4872b0
fix duplicate
betegon Jun 23, 2025
7e2c855
Merge branch 'develop' into bete/bump-import-in-the-middle
betegon Jun 23, 2025
9cd3153
fix(google-cloud-serverless): Make `CloudEventsContext` compatible wi…
flaeppe Jun 23, 2025
b81646f
Merge branch 'develop' into bete/bump-import-in-the-middle
betegon Jun 23, 2025
8501122
Merge pull request #16703 from getsentry/bete/bump-import-in-the-middle
betegon Jun 23, 2025
c37d4e5
chore: Add external contributor to CHANGELOG.md (#16706)
HazAT Jun 23, 2025
ebc1e26
fix(nextjs): Stop injecting release value when create release options…
chargome Jun 24, 2025
e0c9059
fix: Export logger from sveltekit worker (#16716)
RulaKhaled Jun 24, 2025
8d17ffc
feat(nextjs): Expose top level buildTime `errorHandler` option (#16718)
chargome Jun 24, 2025
cc2bffd
test: Bump amqplib integration test timeout (#16699)
AbhiPrasad Jun 24, 2025
7d95254
chore: Add cursor rules for dependency upgrades (#16669)
AbhiPrasad Jun 24, 2025
ebdd485
feat(node): update pipeline spans to use agent naming (#16712)
AbhiPrasad Jun 24, 2025
4d8581a
feat(browser): Add CLS sources to span attributes (#16710)
AbhiPrasad Jun 24, 2025
85c10ab
fix(tests): Set `vite` versions in Remix e2e tests. (#16720)
onurtemizkan Jun 24, 2025
63b255f
feat(node): Add `@sentry/node-native` package (#16722)
timfish Jun 24, 2025
3c012d0
feat(pino-transport): Add functionality to send logs to sentry (#16667)
AbhiPrasad Jun 24, 2025
5f7129c
test: Update Vitest (#16682)
timfish Jun 25, 2025
9659275
feat(nuxt): Add alias for `@opentelemetry/resources` (#16727)
s1gr1d Jun 25, 2025
32076d3
meta(changelog): Update changelog for 9.32.0
RulaKhaled Jun 25, 2025
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
1 change: 1 addition & 0 deletions .cursor/rules/publishing_release.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ description: Use this rule if you are looking to publish a release for the Sentr
globs:
alwaysApply: false
---

# Publishing a Release

Use these guidelines when publishing a new Sentry JavaScript SDK release.
Expand Down
163 changes: 163 additions & 0 deletions .cursor/rules/sdk_dependency_upgrades.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
---
description: Use this rule if you are looking to upgrade a dependency in the Sentry JavaScript SDKs
globs:
alwaysApply: false
---
# Yarn v1 Dependency Upgrades

## Upgrade Process

### Dependency Analysis

```bash
# Check dependency tree
yarn list --depth=0

# Find why package is installed
yarn why [package-name]
```

### Root Workspace vs. Package Dependencies

**CRITICAL**: Understand the difference between dependency types:

- **Root Workspace dependencies**: Shared dev tools, build tools, testing frameworks
- **Package dependencies**: Package-specific runtime and dev dependencies
- Always check if dependency should be in root workspace or package level

### Upgrade Dependencies

**MANDATORY**: Only ever upgrade a single package at a time.

**CRITICAL RULE**: If a dependency is not defined in `package.json` anywhere, the upgrade must be run in the root workspace as the `yarn.lock` file is contained there.

```bash
# Upgrade specific package to latest compatible version
npx yarn-update-dependency@latest [package-name]
```

Avoid upgrading top-level dependencies (defined in `package.json`), especially if they are used for tests. If you are going to upgrade them, ask the user before proceeding.

**REQUIREMENT**: If a `package.json` file is updated, make sure it has a new line at the end.

#### CRITICAL: OpenTelemetry Dependency Constraint

**STOP UPGRADE IMMEDIATELY** if upgrading any dependency with `opentelemetry` in the name and the new version or any of its dependencies uses forbidden OpenTelemetry versions.

**FORBIDDEN VERSION PATTERNS:**
- `2.x.x` versions (e.g., `2.0.0`, `2.1.0`)
- `0.2xx.x` versions (e.g., `0.200.0`, `0.201.0`)

When upgrading OpenTelemetry dependencies:
1. Check the dependency's `package.json` after upgrade
2. Verify the package itself doesn't use forbidden version patterns
3. Verify none of its dependencies use `@opentelemetry/*` packages with forbidden version patterns
4. **Example**: `@opentelemetry/instrumentation-pg@0.52.0` is forbidden because it bumped to core `2.0.0` and instrumentation `0.200.0`
5. If forbidden OpenTelemetry versions are detected, **ABORT the upgrade** and notify the user that this upgrade cannot proceed due to OpenTelemetry v2+ compatibility constraints

#### CRITICAL: E2E Test Dependencies

**DO NOT UPGRADE** the major version of dependencies in test applications where the test name explicitly mentions a dependency version.

**RULE**: For `dev-packages/e2e-tests/test-applications/*`, if the test directory name mentions a specific version (e.g., `nestjs-8`), do not upgrade that dependency beyond the mentioned major version.

**Example**: Do not upgrade the nestjs version of `dev-packages/e2e-tests/test-applications/nestjs-8` to nestjs 9 or above because the test name mentions nestjs 8.

## Safety Protocols

### Pre-Upgrade Checklist

**COMPLETE ALL STEPS** before proceeding with any upgrade:

1. **Backup**: Ensure clean git state or create backup branch
2. **CI Status**: Verify all tests are passing
3. **Lockfile works**: Confirm `yarn.lock` is in a good state (no merge conflicts)
4. **OpenTelemetry Check**: For OpenTelemetry dependencies, verify no forbidden version patterns (`2.x.x` or `0.2xx.x`) will be introduced

### Post-Upgrade Verification

```bash
# rebuild everything
yarn install

# Build the project
yarn build:dev

# Make sure dependencies are deduplicated
yarn dedupe-deps:fix

# Fix any linting issues
yarn fix

# Check circular dependencies
yarn circularDepCheck
```

## Version Management

### Pinning Strategies

- **Exact versions** (`1.2.3`): Use for critical dependencies
- **Caret versions** (`^1.2.3`): Allow minor updates only
- **Latest tag**: Avoid as much as possible other than in certain testing and development scenarios

## Troubleshooting

- **Yarn Version**: Run `yarn --version` - must be yarn v1 (not v2/v3/v4)
- **Lockfile Issues**: Verify yarn.lock exists and is properly maintained. Fix merge conflicts by running `yarn install`

## Best Practices

### Security Audits

```bash
# Check for security vulnerabilities
yarn audit

# Fix automatically fixable vulnerabilities
yarn audit fix

# Install security patches only
yarn upgrade --security-only
```

### Check for Outdated Dependencies

```bash
# Check all outdated dependencies
yarn outdated

# Check specific package
yarn outdated [package-name]

# Check dependencies in specific workspace
yarn workspace [workspace-name] outdated
```

### Using yarn info for Dependency Inspection

Use `yarn info` to inspect package dependencies before and after upgrades:

```bash
# Check current version and dependencies
yarn info <package-name>

# Check specific version dependencies
yarn info <package-name>@<version>

# Check dependencies field specifically
yarn info <package-name>@<version> dependencies

# Check all available versions
yarn info <package-name> versions
```

The `yarn info` command provides detailed dependency information without requiring installation, making it particularly useful for:
- Verifying OpenTelemetry packages don't introduce forbidden version patterns (`2.x.x` or `0.2xx.x`)
- Checking what dependencies a package will bring in before upgrading
- Understanding package version history and compatibility

### Documentation

- Update README or code comments if dependency change affects usage of the SDK or its integrations
- Notify team of significant changes
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ body:
- '@sentry/node - koa'
- '@sentry/node - hapi'
- '@sentry/node - connect'
- '@sentry/node-native'
- '@sentry/angular'
- '@sentry/astro'
- '@sentry/aws-serverless'
Expand Down
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,35 @@

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

## 9.32.0

### Important Changes

- feat(browser): Add CLS sources to span attributes ([#16710](https://github.com/getsentry/sentry-javascript/pull/16710))

Enhances CLS (Cumulative Layout Shift) spans by adding attributes detailing the elements that caused layout shifts.

- feat(cloudflare): Add `instrumentWorkflowWithSentry` to instrument workflows ([#16672](https://github.com/getsentry/sentry-javascript/pull/16672))

We've added support for Cloudflare Workflows, enabling comprehensive tracing for your workflow runs. This integration uses the workflow's instanceId as the Sentry trace_id and for sampling, linking all steps together. You'll now be able to see full traces, including retries with exponential backoff.

- feat(pino-transport): Add functionality to send logs to sentry ([#16667](https://github.com/getsentry/sentry-javascript/pull/16667))

Adds the ability to send logs to Sentry via a pino transport.

### Other Changes

- feat(nextjs): Expose top level buildTime `errorHandler` option ([#16718](https://github.com/getsentry/sentry-javascript/pull/16718))
- feat(node): update pipeline spans to use agent naming ([#16712](https://github.com/getsentry/sentry-javascript/pull/16712))
- feat(deps): bump @prisma/instrumentation from 6.9.0 to 6.10.1 ([#16698](https://github.com/getsentry/sentry-javascript/pull/16698))
- fix(sveltekit): Export logger from sveltekit worker ([#16716](https://github.com/getsentry/sentry-javascript/pull/16716))
- fix(google-cloud-serverless): Make `CloudEventsContext` compatible with `CloudEvent` ([#16705](https://github.com/getsentry/sentry-javascript/pull/16705))
- fix(nextjs): Stop injecting release value when create release options is set to `false` ([#16695](https://github.com/getsentry/sentry-javascript/pull/16695))
- fix(node): account for Object. syntax with local variables matching ([#16702](https://github.com/getsentry/sentry-javascript/pull/16702))
- fix(nuxt): Add alias for `@opentelemetry/resources` ([#16727](https://github.com/getsentry/sentry-javascript/pull/16727))

Work in this release was contributed by @flaeppe. Thank you for your contribution!

## 9.31.0

### Important Changes
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,6 @@ below:
Provides the integration for Session Replay.
- [`@sentry/core`](https://github.com/getsentry/sentry-javascript/tree/master/packages/core): The base for all
JavaScript SDKs with interfaces, type definitions and base classes.
- [`@sentry/pino-transport`](https://github.com/getsentry/sentry-javascript/tree/master/packages/pino-transport): Pino
transport for automatically sending log messages to Sentry.

## Bug Bounty Program

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ sentryTest('captures a "GOOD" CLS vital with its source as a standalone span', a
transaction: expect.stringContaining('index.html'),
'user_agent.original': expect.stringContaining('Chrome'),
'sentry.pageload.span_id': expect.stringMatching(/[a-f0-9]{16}/),
'cls.source.1': expect.stringContaining('body > div#content > p'),
},
description: expect.stringContaining('body > div#content > p'),
exclusive_time: 0,
Expand Down Expand Up @@ -136,6 +137,7 @@ sentryTest('captures a "MEH" CLS vital with its source as a standalone span', as
transaction: expect.stringContaining('index.html'),
'user_agent.original': expect.stringContaining('Chrome'),
'sentry.pageload.span_id': expect.stringMatching(/[a-f0-9]{16}/),
'cls.source.1': expect.stringContaining('body > div#content > p'),
},
description: expect.stringContaining('body > div#content > p'),
exclusive_time: 0,
Expand Down Expand Up @@ -202,6 +204,7 @@ sentryTest('captures a "POOR" CLS vital with its source as a standalone span.',
transaction: expect.stringContaining('index.html'),
'user_agent.original': expect.stringContaining('Chrome'),
'sentry.pageload.span_id': expect.stringMatching(/[a-f0-9]{16}/),
'cls.source.1': expect.stringContaining('body > div#content > p'),
},
description: expect.stringContaining('body > div#content > p'),
exclusive_time: 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"eslint-plugin-react-hooks": "^4.6.0",
"tsx": "4.7.2",
"typescript": "^5.1.6",
"vite": "^5.4.11",
"vite-tsconfig-paths": "^4.2.1"
},
"volta": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
"@types/react-dom": "^18.2.34",
"@types/prop-types": "15.7.7",
"eslint": "^8.38.0",
"typescript": "^5.1.6"
"typescript": "^5.1.6",
"vite": "^5.4.11"
},
"resolutions": {
"@types/react": "18.2.22"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ test('should create AI spans with correct attributes', async ({ page }) => {
// TODO: For now, this is sadly not fully working - the monkey patching of the ai package is not working
// because of this, only spans that are manually opted-in at call time will be captured
// this may be fixed by https://github.com/vercel/ai/pull/6716 in the future
const aiPipelineSpans = spans.filter(span => span.op === 'ai.pipeline.generate_text');
const aiPipelineSpans = spans.filter(span => span.op === 'gen_ai.invoke_agent');
const aiGenerateSpans = spans.filter(span => span.op === 'gen_ai.generate_text');
const toolCallSpans = spans.filter(span => span.op === 'gen_ai.execute_tool');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"solid-devtools": "^0.29.2",
"tailwindcss": "^3.4.1",
"vite": "^5.4.11",
"vite-plugin-solid": "^2.8.2"
"vite-plugin-solid": "^2.11.6"
},
"dependencies": {
"@solidjs/router": "^0.13.5",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"solid-devtools": "^0.29.2",
"tailwindcss": "^3.4.1",
"vite": "^5.4.11",
"vite-plugin-solid": "^2.8.2"
"vite-plugin-solid": "^2.11.6"
},
"dependencies": {
"solid-js": "^1.8.18",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"typescript": "^5.4.5",
"vinxi": "^0.4.0",
"vite": "^5.4.10",
"vite-plugin-solid": "^2.10.2",
"vite-plugin-solid": "^2.11.6",
"vitest": "^1.5.0"
},
"overrides": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"typescript": "^5.4.5",
"vinxi": "^0.4.0",
"vite": "^5.4.11",
"vite-plugin-solid": "^2.10.2",
"vite-plugin-solid": "^2.11.6",
"vitest": "^1.5.0"
},
"overrides": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"typescript": "^5.4.5",
"vinxi": "^0.4.0",
"vite": "^5.4.11",
"vite-plugin-solid": "^2.10.2",
"vite-plugin-solid": "^2.11.6",
"vitest": "^1.5.0"
},
"overrides": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"typescript": "^5.4.5",
"vinxi": "^0.4.0",
"vite": "^5.4.11",
"vite-plugin-solid": "^2.10.2",
"vite-plugin-solid": "^2.11.6",
"vitest": "^1.5.0"
},
"overrides": {
Expand Down
6 changes: 6 additions & 0 deletions dev-packages/e2e-tests/verdaccio-config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ packages:
unpublish: $all
# proxy: npmjs # Don't proxy for E2E tests!

'@sentry/node-native':
access: $all
publish: $all
unpublish: $all
# proxy: npmjs # Don't proxy for E2E tests!

'@sentry/opentelemetry':
access: $all
publish: $all
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
const Sentry = require('@sentry/node');
const { loggingTransport } = require('@sentry-internal/node-integration-tests');

Sentry.init({
dsn: 'https://public@dsn.ingest.sentry.io/1337',
includeLocalVariables: true,
transport: loggingTransport,
});

process.on('uncaughtException', () => {
// do nothing - this will prevent the Error below from closing this process
});

// Testing GraphQL resolver: https://github.com/getsentry/sentry-javascript/issues/16701
const resolvers = {
Query: {
testSentry: args => {
try {
args.foo.map(x => x);
return true;
} catch (error) {
Sentry.captureException(error);
return false;
}
},
},
};

function regularFunction() {
resolvers.Query.testSentry({ foo: undefined });
}

setTimeout(() => {
regularFunction();
}, 1000);
Loading
Loading