Skip to content

Commit a71f831

Browse files
authored
Merge branch 'develop' into handle-buffer
2 parents 68ce53c + 0aa7f1d commit a71f831

File tree

529 files changed

+6247
-7285
lines changed

Some content is hidden

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

529 files changed

+6247
-7285
lines changed

.github/dependabot.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,10 @@ updates:
1313
schedule:
1414
interval: 'weekly'
1515
allow:
16-
- dependency-name: "@sentry/cli"
17-
- dependency-name: "@sentry/vite-plugin"
18-
- dependency-name: "@sentry/webpack-plugin"
19-
- dependency-name: "@sentry/rollup-plugin"
20-
- dependency-name: "@sentry/esbuild-plugin"
16+
- dependency-name: "@sentry/*"
2117
- dependency-name: "@opentelemetry/*"
2218
- dependency-name: "@prisma/instrumentation"
19+
- dependency-name: "opentelemetry-instrumentation-remix"
2320
versioning-strategy: increase
2421
commit-message:
2522
prefix: feat

.github/workflows/build.yml

Lines changed: 5 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ jobs:
437437
with:
438438
node-version-file: 'package.json'
439439
- name: Set up Deno
440-
uses: denoland/setup-deno@v1.5.1
440+
uses: denoland/setup-deno@v2.0.1
441441
with:
442442
deno-version: v1.38.5
443443
- name: Restore caches
@@ -858,7 +858,7 @@ jobs:
858858
if: always() && needs.job_e2e_prepare.result == 'success'
859859
needs: [job_get_metadata, job_build, job_e2e_prepare]
860860
runs-on: ubuntu-20.04
861-
timeout-minutes: 10
861+
timeout-minutes: 15
862862
env:
863863
# We just use a dummy DSN here, only send to the tunnel anyhow
864864
E2E_TEST_DSN: 'https://username@domain/123'
@@ -914,6 +914,7 @@ jobs:
914914
'react-router-6',
915915
'solid',
916916
'solidstart',
917+
'solidstart-spa',
917918
'svelte-5',
918919
'sveltekit',
919920
'sveltekit-2',
@@ -1070,7 +1071,7 @@ jobs:
10701071
github.actor != 'dependabot[bot]'
10711072
needs: [job_get_metadata, job_build, job_e2e_prepare]
10721073
runs-on: ubuntu-20.04
1073-
timeout-minutes: 10
1074+
timeout-minutes: 15
10741075
env:
10751076
E2E_TEST_AUTH_TOKEN: ${{ secrets.E2E_TEST_AUTH_TOKEN }}
10761077
E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
@@ -1234,7 +1235,7 @@ jobs:
12341235
)
12351236
needs: [job_get_metadata, job_build, job_e2e_prepare]
12361237
runs-on: ubuntu-20.04
1237-
timeout-minutes: 10
1238+
timeout-minutes: 15
12381239
env:
12391240
E2E_TEST_AUTH_TOKEN: ${{ secrets.E2E_TEST_AUTH_TOKEN }}
12401241
E2E_TEST_DSN: ${{ secrets.E2E_TEST_DSN }}
@@ -1345,48 +1346,6 @@ jobs:
13451346
run: |
13461347
echo "One of the dependent jobs have failed. You may need to re-run it." && exit 1
13471348
1348-
overhead_metrics:
1349-
name: Overhead metrics
1350-
needs: [job_get_metadata, job_build]
1351-
runs-on: ubuntu-20.04
1352-
timeout-minutes: 30
1353-
if: |
1354-
contains(github.event.pull_request.labels.*.name, 'ci-overhead-measurements')
1355-
steps:
1356-
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
1357-
uses: actions/checkout@v4
1358-
with:
1359-
ref: ${{ env.HEAD_COMMIT }}
1360-
- name: Set up Node
1361-
uses: actions/setup-node@v4
1362-
with:
1363-
node-version-file: 'package.json'
1364-
- name: Restore caches
1365-
uses: ./.github/actions/restore-cache
1366-
with:
1367-
dependency_cache_key: ${{ needs.job_build.outputs.dependency_cache_key }}
1368-
1369-
- name: Collect
1370-
run: yarn ci:collect
1371-
working-directory: dev-packages/overhead-metrics
1372-
1373-
- name: Process
1374-
id: process
1375-
run: yarn ci:process
1376-
working-directory: dev-packages/overhead-metrics
1377-
# Don't run on forks - the PR comment cannot be added.
1378-
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
1379-
env:
1380-
GITHUB_TOKEN: ${{ github.token }}
1381-
1382-
- name: Upload results
1383-
uses: actions/upload-artifact@v4
1384-
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
1385-
with:
1386-
name: ${{ steps.process.outputs.artifactName }}
1387-
path: ${{ steps.process.outputs.artifactPath }}
1388-
retention-days: 7
1389-
13901349
job_compile_bindings_profiling_node:
13911350
name: Compile & Test Profiling Bindings (v${{ matrix.node }}) ${{ matrix.target_platform || matrix.os }}, ${{ matrix.node || matrix.container }}, ${{ matrix.arch || matrix.container }}, ${{ contains(matrix.container, 'alpine') && 'musl' || 'glibc' }}
13921351
needs: [job_get_metadata, job_build]

.github/workflows/codeql-analysis.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333
analyze:
3434
name: Analyze
3535
runs-on: ubuntu-latest
36+
# Skip for pushes from dependabot, which is not supported
37+
if: github.event_name == 'pull_request' || github.actor != 'dependabot[bot]'
3638

3739
strategy:
3840
fail-fast: false
@@ -48,7 +50,7 @@ jobs:
4850

4951
# Initializes the CodeQL tools for scanning.
5052
- name: Initialize CodeQL
51-
uses: github/codeql-action/init@v2
53+
uses: github/codeql-action/init@v3
5254
with:
5355
config-file: ./.github/codeql/codeql-config.yml
5456
queries: security-extended
@@ -61,7 +63,7 @@ jobs:
6163
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
6264
# If this step fails, then you should remove it and run the build manually (see below)
6365
- name: Autobuild
64-
uses: github/codeql-action/autobuild@v2
66+
uses: github/codeql-action/autobuild@v3
6567

6668
# ℹ️ Command-line programs to run using the OS shell.
6769
# 📚 https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
@@ -75,4 +77,4 @@ jobs:
7577
# make release
7678

7779
- name: Perform CodeQL Analysis
78-
uses: github/codeql-action/analyze@v2
80+
uses: github/codeql-action/analyze@v3

.github/workflows/external-contributors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ jobs:
4141
# This token is scoped to Daniel Griesser
4242
# If we used the default GITHUB_TOKEN, the resulting PR would not trigger CI :(
4343
token: ${{ secrets.REPO_SCOPED_TOKEN }}
44-
commit-message: "ref: Add external contributor to CHANGELOG.md"
45-
title: "ref: Add external contributor to CHANGELOG.md"
44+
commit-message: "chore: Add external contributor to CHANGELOG.md"
45+
title: "chore: Add external contributor to CHANGELOG.md"
4646
branch: 'external-contributor/patch-${{ github.event.pull_request.user.login }}'
4747
base: 'develop'
4848
delete-branch: true

.size-limit.js

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module.exports = [
4040
path: 'packages/browser/build/npm/esm/index.js',
4141
import: createImport('init', 'browserTracingIntegration'),
4242
gzip: true,
43-
limit: '36 KB',
43+
limit: '36.5 KB',
4444
},
4545
{
4646
name: '@sentry/browser (incl. Tracing, Replay)',
@@ -79,7 +79,7 @@ module.exports = [
7979
path: 'packages/browser/build/npm/esm/index.js',
8080
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'replayCanvasIntegration'),
8181
gzip: true,
82-
limit: '78.1 KB',
82+
limit: '78.2 KB',
8383
},
8484
{
8585
name: '@sentry/browser (incl. Tracing, Replay, Feedback)',
@@ -88,20 +88,6 @@ module.exports = [
8888
gzip: true,
8989
limit: '95 KB',
9090
},
91-
{
92-
name: '@sentry/browser (incl. Tracing, Replay, Feedback, metrics)',
93-
path: 'packages/browser/build/npm/esm/index.js',
94-
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'feedbackIntegration', 'metrics'),
95-
gzip: true,
96-
limit: '100 KB',
97-
},
98-
{
99-
name: '@sentry/browser (incl. metrics)',
100-
path: 'packages/browser/build/npm/esm/index.js',
101-
import: createImport('init', 'metrics'),
102-
gzip: true,
103-
limit: '30 KB',
104-
},
10591
{
10692
name: '@sentry/browser (incl. Feedback)',
10793
path: 'packages/browser/build/npm/esm/index.js',
@@ -138,7 +124,7 @@ module.exports = [
138124
import: createImport('init', 'ErrorBoundary', 'reactRouterV6BrowserTracingIntegration'),
139125
ignore: ['react/jsx-runtime'],
140126
gzip: true,
141-
limit: '39.05 KB',
127+
limit: '39.5 KB',
142128
},
143129
// Vue SDK (ESM)
144130
{
@@ -224,7 +210,7 @@ module.exports = [
224210
import: createImport('init'),
225211
ignore: ['next/router', 'next/constants'],
226212
gzip: true,
227-
limit: '39.1 KB',
213+
limit: '40 KB',
228214
},
229215
// SvelteKit SDK (ESM)
230216
{

.vscode/settings.json

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
{
2-
"editor.formatOnType": true,
3-
"editor.formatOnPaste": false,
4-
"editor.formatOnSave": true,
5-
"editor.rulers": [120],
62
"editor.tabSize": 2,
7-
"files.autoSave": "onWindowChange",
83
"files.trimTrailingWhitespace": true,
94
"files.insertFinalNewline": true,
105
"search.exclude": {
@@ -15,11 +10,6 @@
1510
"**/yarn-error.log": true
1611
},
1712
"typescript.tsdk": "./node_modules/typescript/lib",
18-
"[json]": {
19-
"editor.formatOnType": false,
20-
"editor.formatOnPaste": false,
21-
"editor.formatOnSave": false
22-
},
2313
"[markdown]": {
2414
"editor.defaultFormatter": "esbenp.prettier-vscode"
2515
},
@@ -35,12 +25,8 @@
3525
}
3626
],
3727
"deno.enablePaths": ["packages/deno/test"],
38-
"editor.codeActionsOnSave": {
39-
"source.organizeImports.biome": "explicit"
40-
},
4128
"editor.defaultFormatter": "biomejs.biome",
4229
"[typescript]": {
4330
"editor.defaultFormatter": "biomejs.biome"
44-
},
45-
"cSpell.words": ["arrayify", "OTEL"]
31+
}
4632
}

CHANGELOG.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,100 @@
1010

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

13+
Work in this release was contributed by @Zen-cronic. Thank you for your contribution!
14+
15+
Work in this release was contributed by @grahamhency, @Zen-cronic, @gilisho and @phuctm97. Thank you for your contributions!
16+
17+
## 8.37.1
18+
19+
- feat(deps): Bump @opentelemetry/instrumentation from 0.53.0 to 0.54.0 for @sentry/opentelemetry ([#14187](https://github.com/getsentry/sentry-javascript/pull/14187))
20+
21+
## 8.37.0
22+
23+
### Important Changes
24+
25+
- **feat(nuxt): Add `piniaIntegration` ([#14138](https://github.com/getsentry/sentry-javascript/pull/14138))**
26+
27+
The Nuxt SDK now allows you to track Pinia state for captured errors. To enable the Pinia plugin, add the `piniaIntegration` to your client config:
28+
29+
```ts
30+
// sentry.client.config.ts
31+
import { usePinia } from '#imports';
32+
33+
Sentry.init({
34+
integrations: [
35+
Sentry.piniaIntegration(usePinia(), {
36+
/* optional Pinia plugin options */
37+
}),
38+
],
39+
});
40+
```
41+
42+
- **feat: Deprecate metrics API ([#14157](https://github.com/getsentry/sentry-javascript/pull/14157))**
43+
44+
The Sentry Metrics beta has ended in favour of revisiting metrics in another form at a later date.
45+
46+
This new approach will include different APIs, making the current metrics API unnecessary. This release
47+
deprecates the metrics API with the plan to remove in the next SDK major version. If you currently use the
48+
metrics API in your code, you can safely continue to do so but sent data will no longer be processed by Sentry.
49+
50+
[Learn more](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th) about the end of the Metrics beta.
51+
52+
### Other Changes
53+
54+
- feat(browser): Add `http.response_delivery_type` attribute to resource spans ([#14056](https://github.com/getsentry/sentry-javascript/pull/14056))
55+
- feat(browser): Add `skipBrowserExtensionCheck` escape hatch option ([#14147](https://github.com/getsentry/sentry-javascript/pull/14147))
56+
- feat(deps): Bump @opentelemetry/instrumentation from 0.53.0 to 0.54.0 ([#14174](https://github.com/getsentry/sentry-javascript/pull/14174))
57+
- feat(deps): Bump @opentelemetry/instrumentation-fastify from 0.40.0 to 0.41.0 ([#14175](https://github.com/getsentry/sentry-javascript/pull/14175))
58+
- feat(deps): Bump @opentelemetry/instrumentation-graphql from 0.43.0 to 0.44.0 ([#14173](https://github.com/getsentry/sentry-javascript/pull/14173))
59+
- feat(deps): Bump @opentelemetry/instrumentation-mongodb from 0.47.0 to 0.48.0 ([#14171](https://github.com/getsentry/sentry-javascript/pull/14171))
60+
- feat(deps): Bump @opentelemetry/propagator-aws-xray from 1.25.1 to 1.26.0 ([#14172](https://github.com/getsentry/sentry-javascript/pull/14172))
61+
- feat(nuxt): Add `asyncFunctionReExports` to define re-exported server functions ([#14104](https://github.com/getsentry/sentry-javascript/pull/14104))
62+
- feat(nuxt): Add `piniaIntegration` ([#14138](https://github.com/getsentry/sentry-javascript/pull/14138))
63+
- fix(browser): Avoid recording long task spans starting before their parent span ([#14183](https://github.com/getsentry/sentry-javascript/pull/14183))
64+
- fix(core): Ensure errors thrown in async cron jobs bubble up ([#14182](https://github.com/getsentry/sentry-javascript/pull/14182))
65+
- fix(core): Silently fail `maybeInstrument` ([#14140](https://github.com/getsentry/sentry-javascript/pull/14140))
66+
- fix(nextjs): Resolve path for dynamic webpack import ([#13751](https://github.com/getsentry/sentry-javascript/pull/13751))
67+
- fix(node): Make sure `modulesIntegration` does not crash esm apps ([#14169](https://github.com/getsentry/sentry-javascript/pull/14169))
68+
69+
Work in this release was contributed by @rexxars. Thank you for your contribution!
70+
71+
## 8.36.0
72+
73+
### Important Changes
74+
75+
- **feat(nextjs/vercel-edge/cloudflare): Switch to OTEL for performance monitoring ([#13889](https://github.com/getsentry/sentry-javascript/pull/13889))**
76+
77+
With this release, the Sentry Next.js, and Cloudflare SDKs will now capture performance data based on OpenTelemetry.
78+
Some exceptions apply in cases where Next.js captures inaccurate data itself.
79+
80+
NOTE: You may experience minor differences in transaction names in Sentry.
81+
Most importantly transactions for serverside pages router invocations will now be named `GET /[param]/my/route` instead of `/[param]/my/route`.
82+
This means that those transactions are now better aligned with the OpenTelemetry semantic conventions.
83+
84+
### Other Changes
85+
86+
- deps: Bump bundler plugins and CLI to 2.22.6 and 2.37.0 respectively ([#14050](https://github.com/getsentry/sentry-javascript/pull/14050))
87+
- feat(deps): bump @opentelemetry/instrumentation-aws-sdk from 0.44.0 to 0.45.0 ([#14099](https://github.com/getsentry/sentry-javascript/pull/14099))
88+
- feat(deps): bump @opentelemetry/instrumentation-connect from 0.39.0 to 0.40.0 ([#14101](https://github.com/getsentry/sentry-javascript/pull/14101))
89+
- feat(deps): bump @opentelemetry/instrumentation-express from 0.43.0 to 0.44.0 ([#14102](https://github.com/getsentry/sentry-javascript/pull/14102))
90+
- feat(deps): bump @opentelemetry/instrumentation-fs from 0.15.0 to 0.16.0 ([#14098](https://github.com/getsentry/sentry-javascript/pull/14098))
91+
- feat(deps): bump @opentelemetry/instrumentation-kafkajs from 0.3.0 to 0.4.0 ([#14100](https://github.com/getsentry/sentry-javascript/pull/14100))
92+
- feat(nextjs): Add method and url to route handler request data ([#14084](https://github.com/getsentry/sentry-javascript/pull/14084))
93+
- feat(node): Add breadcrumbs for `child_process` and `worker_thread` ([#13896](https://github.com/getsentry/sentry-javascript/pull/13896))
94+
- fix(core): Ensure standalone spans are not sent if SDK is disabled ([#14088](https://github.com/getsentry/sentry-javascript/pull/14088))
95+
- fix(nextjs): Await flush in api handlers ([#14023](https://github.com/getsentry/sentry-javascript/pull/14023))
96+
- fix(nextjs): Don't leak webpack types into exports ([#14116](https://github.com/getsentry/sentry-javascript/pull/14116))
97+
- fix(nextjs): Fix matching logic for file convention type for root level components ([#14038](https://github.com/getsentry/sentry-javascript/pull/14038))
98+
- fix(nextjs): Respect directives in value injection loader ([#14083](https://github.com/getsentry/sentry-javascript/pull/14083))
99+
- fix(nuxt): Only wrap `.mjs` entry files in rollup ([#14060](https://github.com/getsentry/sentry-javascript/pull/14060))
100+
- fix(nuxt): Re-export all exported bindings ([#14086](https://github.com/getsentry/sentry-javascript/pull/14086))
101+
- fix(nuxt): Server-side setup in readme ([#14049](https://github.com/getsentry/sentry-javascript/pull/14049))
102+
- fix(profiling-node): Always warn when running on incompatible major version of Node.js ([#14043](https://github.com/getsentry/sentry-javascript/pull/14043))
103+
- fix(replay): Fix `onError` callback ([#14002](https://github.com/getsentry/sentry-javascript/pull/14002))
104+
- perf(otel): Only calculate current timestamp once ([#14094](https://github.com/getsentry/sentry-javascript/pull/14094))
105+
- test(browser-integration): Add sentry DSN route handler by default ([#14095](https://github.com/getsentry/sentry-javascript/pull/14095))
106+
13107
## 8.35.0
14108

15109
### Beta release of the official Nuxt Sentry SDK

dev-packages/browser-integration-tests/loader-suites/loader/noOnLoad/replay/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@ sentryTest('should capture a replay', async ({ getLocalTestUrl, page }) => {
1111
sentryTest.skip();
1212
}
1313

14-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
15-
return route.fulfill({
16-
status: 200,
17-
contentType: 'application/json',
18-
body: JSON.stringify({ id: 'test-id' }),
19-
});
20-
});
21-
2214
const req = waitForReplayRequest(page);
2315

2416
const url = await getLocalTestUrl({ testDir: __dirname });

dev-packages/browser-integration-tests/loader-suites/loader/noOnLoad/replayError/test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,6 @@ sentryTest('should capture a replay & attach an error', async ({ getLocalTestUrl
99
sentryTest.skip();
1010
}
1111

12-
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
13-
return route.fulfill({
14-
status: 200,
15-
contentType: 'application/json',
16-
body: JSON.stringify({ id: 'test-id' }),
17-
});
18-
});
19-
2012
const req = waitForReplayRequest(page);
2113

2214
const url = await getLocalTestUrl({ testDir: __dirname });

dev-packages/browser-integration-tests/loader-suites/loader/noOnLoad/sdkLoadedInMeanwhile/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ sentryTest('it does not download the SDK if the SDK was loaded in the meanwhile'
2828
});
2929
});
3030

31-
const tmpDir = await getLocalTestUrl({ testDir: __dirname, skipRouteHandler: true });
31+
const tmpDir = await getLocalTestUrl({ testDir: __dirname, skipRouteHandler: true, skipDsnRouteHandler: true });
3232

3333
await page.route(`${TEST_HOST}/*.*`, route => {
3434
const file = route.request().url().split('/').pop();

0 commit comments

Comments
 (0)