Skip to content

Commit ed26a19

Browse files
authored
Merge pull request #20461 from getsentry/prepare-release/10.50.0
meta(changelog): Update changelog for 10.50.0
2 parents 500b2ee + 7b584c4 commit ed26a19

615 files changed

Lines changed: 7594 additions & 2604 deletions

File tree

Some content is hidden

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

.agents/skills/e2e/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ All tests completed successfully. Your SDK changes work correctly with this test
116116

117117
- **No tarballs found**: Run `yarn build && yarn build:tarball` at repository root
118118
- **Test app not found**: List available apps and ask user to clarify
119-
- **Verdaccio not running**: Tests should start Verdaccio automatically, but if issues occur, check Docker
119+
- **Packed tarballs missing**: Run `yarn build:tarball` at the repo root, then `yarn test:prepare` in `dev-packages/e2e-tests`
120120
- **Build failures**: Fix build errors before running tests
121121

122122
## Common Test Applications

.cursor/BUGBOT.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ Do not flag the issues below if they appear in tests.
6363
- Race conditions when waiting on multiple requests. Ensure that waiting checks are unique enough and don't depend on a hard order when there's a chance that telemetry can be sent in arbitrary order.
6464
- Timeouts or sleeps in tests. Instead suggest concrete events or other signals to wait on.
6565
- Flag usage of `getFirstEnvelope*`, `getMultipleEnvelope*` or related test helpers. These are NOT reliable anymore. Instead suggest helpers like `waitForTransaction`, `waitForError`, `waitForSpans`, etc.
66+
- Flag any new or modified `docker-compose.yml` under `dev-packages/node-integration-tests/suites/` or `dev-packages/node-core-integration-tests/suites/` where a service does not define a `healthcheck:`. The runner uses `docker compose up --wait` and relies on healthchecks to know when services are actually ready; without one the test will race the service's startup.
6667

6768
## Platform-safe code
6869

.github/actions/install-dependencies/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ runs:
1515
shell: bash
1616

1717
- name: Check dependency cache
18-
uses: actions/cache@v4
18+
uses: actions/cache@v5
1919
id: cache_dependencies
2020
with:
2121
path: ${{ env.CACHED_DEPENDENCY_PATHS }}

.github/workflows/build.yml

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -930,10 +930,12 @@ jobs:
930930
with:
931931
node-version-file: 'dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/package.json'
932932
- name: Set up Bun
933-
if: contains(fromJSON('["node-exports-test-app","nextjs-16-bun", "elysia-bun"]'), matrix.test-application)
933+
if:
934+
contains(fromJSON('["node-exports-test-app","nextjs-16-bun", "elysia-bun", "hono-4"]'),
935+
matrix.test-application)
934936
uses: oven-sh/setup-bun@v2
935937
- name: Set up AWS SAM
936-
if: matrix.test-application == 'aws-serverless'
938+
if: matrix.test-application == 'aws-serverless' || matrix.test-application == 'aws-serverless-layer'
937939
uses: aws-actions/setup-sam@v2
938940
with:
939941
use-installer: true
@@ -959,18 +961,24 @@ jobs:
959961
if: steps.restore-tarball-cache.outputs.cache-hit != 'true'
960962
run: yarn build:tarball
961963

962-
- name: Validate Verdaccio
963-
run: yarn test:validate
964+
- name: Prepare e2e tests
965+
run: yarn test:prepare
964966
working-directory: dev-packages/e2e-tests
965967

966-
- name: Prepare Verdaccio
967-
run: yarn test:prepare
968+
- name: Validate e2e tests setup
969+
run: yarn test:validate
968970
working-directory: dev-packages/e2e-tests
969971

970972
- name: Copy to temp
971973
run: yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
972974
working-directory: dev-packages/e2e-tests
973975

976+
- name: Add pnpm overrides
977+
run:
978+
yarn ci:pnpm-overrides ${{ runner.temp }}/test-application ${{ github.workspace
979+
}}/dev-packages/e2e-tests/packed
980+
working-directory: dev-packages/e2e-tests
981+
974982
- name: Build E2E app
975983
working-directory: ${{ runner.temp }}/test-application
976984
timeout-minutes: 7
@@ -1069,18 +1077,24 @@ jobs:
10691077
if: steps.restore-tarball-cache.outputs.cache-hit != 'true'
10701078
run: yarn build:tarball
10711079

1072-
- name: Validate Verdaccio
1073-
run: yarn test:validate
1080+
- name: Prepare E2E tests
1081+
run: yarn test:prepare
10741082
working-directory: dev-packages/e2e-tests
10751083

1076-
- name: Prepare Verdaccio
1077-
run: yarn test:prepare
1084+
- name: Validate test setup
1085+
run: yarn test:validate
10781086
working-directory: dev-packages/e2e-tests
10791087

10801088
- name: Copy to temp
10811089
run: yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
10821090
working-directory: dev-packages/e2e-tests
10831091

1092+
- name: Add pnpm overrides
1093+
run:
1094+
yarn ci:pnpm-overrides ${{ runner.temp }}/test-application ${{ github.workspace
1095+
}}/dev-packages/e2e-tests/packed
1096+
working-directory: dev-packages/e2e-tests
1097+
10841098
- name: Build E2E app
10851099
working-directory: ${{ runner.temp }}/test-application
10861100
timeout-minutes: 7

.github/workflows/canary.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,18 +140,24 @@ jobs:
140140
path: ${{ env.CACHED_BUILD_PATHS }}
141141
key: canary-${{ env.HEAD_COMMIT }}
142142

143-
- name: Validate Verdaccio
144-
run: yarn test:validate
143+
- name: Prepare e2e tests
144+
run: yarn test:prepare
145145
working-directory: dev-packages/e2e-tests
146146

147-
- name: Prepare Verdaccio
148-
run: yarn test:prepare
147+
- name: Validate test setup
148+
run: yarn test:validate
149149
working-directory: dev-packages/e2e-tests
150150

151151
- name: Copy to temp
152152
run: yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
153153
working-directory: dev-packages/e2e-tests
154154

155+
- name: Add pnpm overrides
156+
run:
157+
yarn ci:pnpm-overrides ${{ runner.temp }}/test-application ${{ github.workspace
158+
}}/dev-packages/e2e-tests/packed
159+
working-directory: dev-packages/e2e-tests
160+
155161
- name: Build E2E app
156162
working-directory: ${{ runner.temp }}/test-application
157163
timeout-minutes: 7

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ packages/**/*.junit.xml
6767

6868
# Local Claude Code settings that should not be committed
6969
.claude/settings.local.json
70+
.claude/worktrees
7071

7172
# Triage report
7273
**/triage_report.md

.oxlintrc.base.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,19 @@
117117
"max-lines": "off"
118118
}
119119
},
120+
{
121+
"files": ["**/integrations/node-fetch/vendored/**/*.ts"],
122+
"rules": {
123+
"typescript/consistent-type-imports": "off",
124+
"typescript/no-unnecessary-type-assertion": "off",
125+
"typescript/no-unsafe-member-access": "off",
126+
"typescript/no-explicit-any": "off",
127+
"typescript/prefer-for-of": "off",
128+
"max-lines": "off",
129+
"complexity": "off",
130+
"no-param-reassign": "off"
131+
}
132+
},
120133
{
121134
"files": [
122135
"**/scenarios/**",

.size-limit.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ module.exports = [
155155
import: createImport('init', 'ErrorBoundary', 'reactRouterV6BrowserTracingIntegration'),
156156
ignore: ['react/jsx-runtime'],
157157
gzip: true,
158-
limit: '46 KB',
158+
limit: '47 KB',
159159
},
160160
// Vue SDK (ESM)
161161
{
@@ -191,7 +191,7 @@ module.exports = [
191191
name: 'CDN Bundle (incl. Tracing)',
192192
path: createCDNPath('bundle.tracing.min.js'),
193193
gzip: true,
194-
limit: '45 KB',
194+
limit: '46.5 KB',
195195
},
196196
{
197197
name: 'CDN Bundle (incl. Logs, Metrics)',
@@ -203,7 +203,7 @@ module.exports = [
203203
name: 'CDN Bundle (incl. Tracing, Logs, Metrics)',
204204
path: createCDNPath('bundle.tracing.logs.metrics.min.js'),
205205
gzip: true,
206-
limit: '46 KB',
206+
limit: '47.5 KB',
207207
},
208208
{
209209
name: 'CDN Bundle (incl. Replay, Logs, Metrics)',
@@ -215,40 +215,40 @@ module.exports = [
215215
name: 'CDN Bundle (incl. Tracing, Replay)',
216216
path: createCDNPath('bundle.tracing.replay.min.js'),
217217
gzip: true,
218-
limit: '82 KB',
218+
limit: '83.5 KB',
219219
},
220220
{
221221
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics)',
222222
path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'),
223223
gzip: true,
224-
limit: '83 KB',
224+
limit: '84.5 KB',
225225
},
226226
{
227227
name: 'CDN Bundle (incl. Tracing, Replay, Feedback)',
228228
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
229229
gzip: true,
230-
limit: '88 KB',
230+
limit: '89 KB',
231231
},
232232
{
233233
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)',
234234
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
235235
gzip: true,
236-
limit: '89 KB',
236+
limit: '90 KB',
237237
},
238238
// browser CDN bundles (non-gzipped)
239239
{
240240
name: 'CDN Bundle - uncompressed',
241241
path: createCDNPath('bundle.min.js'),
242242
gzip: false,
243243
brotli: false,
244-
limit: '83.5 KB',
244+
limit: '84 KB',
245245
},
246246
{
247247
name: 'CDN Bundle (incl. Tracing) - uncompressed',
248248
path: createCDNPath('bundle.tracing.min.js'),
249249
gzip: false,
250250
brotli: false,
251-
limit: '134 KB',
251+
limit: '138 KB',
252252
},
253253
{
254254
name: 'CDN Bundle (incl. Logs, Metrics) - uncompressed',
@@ -262,42 +262,42 @@ module.exports = [
262262
path: createCDNPath('bundle.tracing.logs.metrics.min.js'),
263263
gzip: false,
264264
brotli: false,
265-
limit: '138 KB',
265+
limit: '141.5 KB',
266266
},
267267
{
268268
name: 'CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed',
269269
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
270270
gzip: false,
271271
brotli: false,
272-
limit: '211 KB',
272+
limit: '212 KB',
273273
},
274274
{
275275
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
276276
path: createCDNPath('bundle.tracing.replay.min.js'),
277277
gzip: false,
278278
brotli: false,
279-
limit: '251 KB',
279+
limit: '255.5 KB',
280280
},
281281
{
282282
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed',
283283
path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'),
284284
gzip: false,
285285
brotli: false,
286-
limit: '255 KB',
286+
limit: '258.5 KB',
287287
},
288288
{
289289
name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed',
290290
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
291291
gzip: false,
292292
brotli: false,
293-
limit: '264 KB',
293+
limit: '268 KB',
294294
},
295295
{
296296
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed',
297297
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
298298
gzip: false,
299299
brotli: false,
300-
limit: '268 KB',
300+
limit: '271.5 KB',
301301
},
302302
// Next.js SDK (ESM)
303303
{
@@ -324,7 +324,7 @@ module.exports = [
324324
import: createImport('init'),
325325
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
326326
gzip: true,
327-
limit: '59 KB',
327+
limit: '60 KB',
328328
},
329329
// Node SDK (ESM)
330330
{

CHANGELOG.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,68 @@
22

33
## Unreleased
44

5+
## 10.50.0
6+
7+
### Important Changes
8+
9+
- **feat(effect): Support v4 beta ([#20394](https://github.com/getsentry/sentry-javascript/pull/20394))**
10+
11+
The `@sentry/effect` integration now supports Effect v4 beta, enabling Sentry instrumentation for the latest Effect framework version.
12+
Read more in the [Effect SDK readme](https://github.com/getsentry/sentry-javascript/blob/39740da9e46de76f4b03bb7ae11849ea761dac14/packages/effect/README.md).
13+
14+
- **feat(hono): Add `@sentry/hono/bun` for Bun runtime ([#20355](https://github.com/getsentry/sentry-javascript/pull/20355))**
15+
16+
A new `@sentry/hono/bun` entry point adds first-class support for running Hono applications instrumented with Sentry on the Bun runtime.
17+
Read more in the [Hono SDK readme](https://github.com/getsentry/sentry-javascript/blob/39740da9e46de76f4b03bb7ae11849ea761dac14/packages/hono/README.md).
18+
19+
- **feat(replay): Add replayStart/replayEnd client lifecycle hooks ([#20369](https://github.com/getsentry/sentry-javascript/pull/20369))**
20+
21+
New `replayStart` and `replayEnd` client lifecycle hooks let you react to replay session start and end events in your application.
22+
23+
### Other Changes
24+
25+
- feat(core): Emit `no_parent_span` client outcomes for discarded spans requiring a parent ([#20350](https://github.com/getsentry/sentry-javascript/pull/20350))
26+
- feat(deps): Bump protobufjs from 7.5.4 to 7.5.5 ([#20372](https://github.com/getsentry/sentry-javascript/pull/20372))
27+
- feat(hono): Add runtime packages as optional peer dependencies ([#20423](https://github.com/getsentry/sentry-javascript/pull/20423))
28+
- feat(opentelemetry): Add tracingChannel utility for context propagation ([#20358](https://github.com/getsentry/sentry-javascript/pull/20358))
29+
- fix(browser): Enrich graphqlClient spans for relative URLs ([#20370](https://github.com/getsentry/sentry-javascript/pull/20370))
30+
- fix(browser): Filter implausible LCP values ([#20338](https://github.com/getsentry/sentry-javascript/pull/20338))
31+
- fix(cloudflare): Use TransformStream to keep track of streams ([#20452](https://github.com/getsentry/sentry-javascript/pull/20452))
32+
- fix(console): Re-patch console in AWS Lambda runtimes ([#20337](https://github.com/getsentry/sentry-javascript/pull/20337))
33+
- fix(core): Correct `GoogleGenAIIstrumentedMethod` typo in type name
34+
- fix(core): Handle stateless MCP wrapper transport correlation ([#20293](https://github.com/getsentry/sentry-javascript/pull/20293))
35+
- fix(hono): Remove undefined from options type ([#20419](https://github.com/getsentry/sentry-javascript/pull/20419))
36+
- fix(node): Guard against null `httpVersion` in outgoing request span attributes ([#20430](https://github.com/getsentry/sentry-javascript/pull/20430))
37+
- fix(node-core): Pass rejection reason instead of Promise as originalException ([#20366](https://github.com/getsentry/sentry-javascript/pull/20366))
38+
39+
<details>
40+
<summary> <strong>Internal Changes</strong> </summary>
41+
42+
- chore: Ignore claude worktrees ([#20440](https://github.com/getsentry/sentry-javascript/pull/20440))
43+
- chore: Prevent test from creating zombie process ([#20392](https://github.com/getsentry/sentry-javascript/pull/20392))
44+
- chore: Update size-limit ([#20412](https://github.com/getsentry/sentry-javascript/pull/20412))
45+
- chore(dev-deps): Bump nx from 22.5.0 to 22.6.5 ([#20458](https://github.com/getsentry/sentry-javascript/pull/20458))
46+
- chore(e2e-tests): Use tarball symlinks for E2E tests instead of verdaccio ([#20386](https://github.com/getsentry/sentry-javascript/pull/20386))
47+
- chore(lint): Remove lint warnings ([#20413](https://github.com/getsentry/sentry-javascript/pull/20413))
48+
- chore(test): Remove empty variant tests ([#20443](https://github.com/getsentry/sentry-javascript/pull/20443))
49+
- chore(tests): Use verdaccio as node process instead of docker image ([#20336](https://github.com/getsentry/sentry-javascript/pull/20336))
50+
- docs(readme): Update usage instructions for binary scripts ([#20426](https://github.com/getsentry/sentry-javascript/pull/20426))
51+
- ref(node): Vendor undici instrumentation ([#20190](https://github.com/getsentry/sentry-javascript/pull/20190))
52+
- test(aws-serverless): Ensure aws-serverless E2E tests run locally ([#20441](https://github.com/getsentry/sentry-javascript/pull/20441))
53+
- test(aws-serverless): Split npm & layer tests ([#20442](https://github.com/getsentry/sentry-javascript/pull/20442))
54+
- test(browser): Fix flaky sessions route-lifecycle test + upgrade axios ([#20197](https://github.com/getsentry/sentry-javascript/pull/20197))
55+
- test(cloudflare): Use `.makeRequestAndWaitForEnvelope` to wait for envelopes ([#20208](https://github.com/getsentry/sentry-javascript/pull/20208))
56+
- test(effect): Rename effect e2e tests to a versioned folder ([#20390](https://github.com/getsentry/sentry-javascript/pull/20390))
57+
- test(hono): Add E2E test for Hono on Cloudflare, Node and Bun ([#20406](https://github.com/getsentry/sentry-javascript/pull/20406))
58+
- test(hono): Add E2E tests for middleware spans ([#20451](https://github.com/getsentry/sentry-javascript/pull/20451))
59+
- test(nextjs): Unskip blocked cf tests ([#20356](https://github.com/getsentry/sentry-javascript/pull/20356))
60+
- test(node): Refactor integration tests for `honoIntegration` ([#20397](https://github.com/getsentry/sentry-javascript/pull/20397))
61+
- test(node): Use docker-compose healthchecks for service readiness ([#20429](https://github.com/getsentry/sentry-javascript/pull/20429))
62+
- test(node-core): Fix minute-boundary race in session-aggregate tests ([#20437](https://github.com/getsentry/sentry-javascript/pull/20437))
63+
- test(nuxt): Fix flaky database error test ([#20447](https://github.com/getsentry/sentry-javascript/pull/20447))
64+
65+
</details>
66+
567
## 10.49.0
668

769
### Important Changes
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
Sentry.init({
6+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
7+
integrations: [Sentry.spanStreamingIntegration(), Sentry.browserTracingIntegration()],
8+
tracesSampleRate: 1.0,
9+
});

0 commit comments

Comments
 (0)