Skip to content

Commit 765de25

Browse files
authored
Merge pull request #14184 from getsentry/prepare-release/8.37.0
meta: Update Changelog for 8.37.0
2 parents 94cd96f + ad42711 commit 765de25

File tree

260 files changed

+2619
-1530
lines changed

Some content is hidden

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

260 files changed

+2619
-1530
lines changed

.github/workflows/build.yml

+1
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,7 @@ jobs:
914914
'react-router-6',
915915
'solid',
916916
'solidstart',
917+
'solidstart-spa',
917918
'svelte-5',
918919
'sveltekit',
919920
'sveltekit-2',

.size-limit.js

+3-17
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)',
@@ -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

+1-15
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

+50
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,56 @@
1010

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

13+
## 8.37.0
14+
15+
### Important CHanges
16+
17+
- **feat(nuxt): Add `piniaIntegration` ([#14138](https://github.com/getsentry/sentry-javascript/pull/14138))**
18+
19+
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:
20+
21+
```ts
22+
// sentry.client.config.ts
23+
import { usePinia } from '#imports';
24+
25+
Sentry.init({
26+
integrations: [
27+
Sentry.piniaIntegration(usePinia(), {
28+
/* optional Pinia plugin options */
29+
}),
30+
],
31+
});
32+
```
33+
34+
- **feat: Deprecate metrics API ([#14157](https://github.com/getsentry/sentry-javascript/pull/14157))**
35+
36+
The Sentry Metrics beta has ended in favour of revisiting metrics in another form at a later date.
37+
38+
This new approach will include different APIs, making the current metrics API unnecessary. This release
39+
deprecates the metrics API with the plan to remove in the next SDK major version. If you currently use the
40+
metrics API in your code, you can safely continue to do so but sent data will no longer be processed by Sentry.
41+
42+
[Learn more](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th) about the end of the Metrics beta.
43+
44+
### Other Changes
45+
46+
- feat(browser): Add `http.response_delivery_type` attribute to resource spans ([#14056](https://github.com/getsentry/sentry-javascript/pull/14056))
47+
- feat(browser): Add `skipBrowserExtensionCheck` escape hatch option ([#14147](https://github.com/getsentry/sentry-javascript/pull/14147))
48+
- feat(deps): Bump @opentelemetry/instrumentation from 0.53.0 to 0.54.0 ([#14174](https://github.com/getsentry/sentry-javascript/pull/14174))
49+
- feat(deps): Bump @opentelemetry/instrumentation-fastify from 0.40.0 to 0.41.0 ([#14175](https://github.com/getsentry/sentry-javascript/pull/14175))
50+
- feat(deps): Bump @opentelemetry/instrumentation-graphql from 0.43.0 to 0.44.0 ([#14173](https://github.com/getsentry/sentry-javascript/pull/14173))
51+
- feat(deps): Bump @opentelemetry/instrumentation-mongodb from 0.47.0 to 0.48.0 ([#14171](https://github.com/getsentry/sentry-javascript/pull/14171))
52+
- feat(deps): Bump @opentelemetry/propagator-aws-xray from 1.25.1 to 1.26.0 ([#14172](https://github.com/getsentry/sentry-javascript/pull/14172))
53+
- feat(nuxt): Add `asyncFunctionReExports` to define re-exported server functions ([#14104](https://github.com/getsentry/sentry-javascript/pull/14104))
54+
- feat(nuxt): Add `piniaIntegration` ([#14138](https://github.com/getsentry/sentry-javascript/pull/14138))
55+
- fix(browser): Avoid recording long task spans starting before their parent span ([#14183](https://github.com/getsentry/sentry-javascript/pull/14183))
56+
- fix(core): Ensure errors thrown in async cron jobs bubble up ([#14182](https://github.com/getsentry/sentry-javascript/pull/14182))
57+
- fix(core): Silently fail `maybeInstrument` ([#14140](https://github.com/getsentry/sentry-javascript/pull/14140))
58+
- fix(nextjs): Resolve path for dynamic webpack import ([#13751](https://github.com/getsentry/sentry-javascript/pull/13751))
59+
- fix(node): Make sure `modulesIntegration` does not crash esm apps ([#14169](https://github.com/getsentry/sentry-javascript/pull/14169))
60+
61+
Work in this release was contributed by @rexxars. Thank you for your contribution!
62+
1363
## 8.36.0
1464

1565
### Important Changes

dev-packages/browser-integration-tests/suites/feedback/attachTo/init.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ Sentry.init({
1414
integrations: [feedback],
1515
});
1616

17-
feedback.attachTo('#custom-feedback-buttom');
17+
feedback.attachTo('#custom-feedback-button');

dev-packages/browser-integration-tests/suites/feedback/attachTo/template.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<button type="button" id="custom-feedback-buttom">Show feedback!</button>
7+
<button type="button" id="custom-feedback-button">Show feedback!</button>
88
</body>
99
</html>

dev-packages/browser-integration-tests/suites/feedback/attachTo/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ sentryTest('should capture feedback with custom button', async ({ getLocalTestUr
2626
const url = await getLocalTestUrl({ testDir: __dirname });
2727

2828
await page.goto(url);
29-
await page.locator('#custom-feedback-buttom').click();
29+
await page.locator('#custom-feedback-button').click();
3030
await page.waitForSelector(':visible:text-is("Report a Bug")');
3131

3232
expect(await page.locator(':visible:text-is("Report a Bug")').count()).toEqual(1);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
// We mock this here to simulate a Chrome browser extension
6+
window.chrome = { runtime: { id: 'mock-extension-id' } };
7+
8+
Sentry.init({
9+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
10+
skipBrowserExtensionCheck: true,
11+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { expect } from '@playwright/test';
2+
import { sentryTest } from '../../../utils/fixtures';
3+
4+
sentryTest(
5+
'initializes inside a Chrome browser extension if `skipBrowserExtensionCheck` is set',
6+
async ({ getLocalTestUrl, page }) => {
7+
const url = await getLocalTestUrl({ testDir: __dirname });
8+
await page.goto(url);
9+
10+
const isInitialized = await page.evaluate(() => {
11+
return !!(window as any).Sentry.isInitialized();
12+
});
13+
14+
expect(isInitialized).toBe(true);
15+
},
16+
);

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onError/non-string-arg/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ sentryTest(
88
'should catch onerror calls with non-string first argument gracefully',
99
async ({ getLocalTestPath, page, browserName }) => {
1010
if (browserName === 'webkit') {
11-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
11+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1212
sentryTest.skip();
1313
}
1414

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onError/rethrown/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ sentryTest(
88
'should NOT catch an exception already caught [but rethrown] via Sentry.captureException',
99
async ({ getLocalTestPath, page, browserName }) => {
1010
if (browserName === 'webkit') {
11-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
11+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1212
sentryTest.skip();
1313
}
1414

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onError/syntax-errors/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { getFirstSentryEnvelopeRequest, runScriptInSandbox } from '../../../../.
66

77
sentryTest('should catch syntax errors', async ({ getLocalTestPath, page, browserName }) => {
88
if (browserName === 'webkit') {
9-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
9+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1010
sentryTest.skip();
1111
}
1212

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onError/thrown-errors/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { getFirstSentryEnvelopeRequest, runScriptInSandbox } from '../../../../.
66

77
sentryTest('should catch thrown errors', async ({ getLocalTestPath, page, browserName }) => {
88
if (browserName === 'webkit') {
9-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
9+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1010
sentryTest.skip();
1111
}
1212

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onError/thrown-objects/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { getFirstSentryEnvelopeRequest, runScriptInSandbox } from '../../../../.
66

77
sentryTest('should catch thrown objects', async ({ getLocalTestPath, page, browserName }) => {
88
if (browserName === 'webkit') {
9-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
9+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1010
sentryTest.skip();
1111
}
1212

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onError/thrown-strings/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { getFirstSentryEnvelopeRequest, runScriptInSandbox } from '../../../../.
66

77
sentryTest('should catch thrown strings', async ({ getLocalTestPath, page, browserName }) => {
88
if (browserName === 'webkit') {
9-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
9+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1010
sentryTest.skip();
1111
}
1212

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
async function run() {
2+
Sentry.startSpan({ name: 'parent_span' }, () => {
3+
Sentry.startSpan({ name: 'child_span', attributes: { someAttribute: '' } }, () => {
4+
// whatever a user would do here
5+
});
6+
});
7+
}
8+
9+
(async () => {
10+
await run();
11+
})();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { expect } from '@playwright/test';
2+
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
import {
5+
envelopeRequestParser,
6+
shouldSkipTracingTest,
7+
waitForTransactionRequestOnUrl,
8+
} from '../../../../utils/helpers';
9+
10+
sentryTest('sends an empty string attribute', async ({ getLocalTestPath, page }) => {
11+
if (shouldSkipTracingTest()) {
12+
sentryTest.skip();
13+
}
14+
15+
const url = await getLocalTestPath({ testDir: __dirname });
16+
const req = await waitForTransactionRequestOnUrl(page, url);
17+
const transaction = envelopeRequestParser(req);
18+
19+
const childSpan = transaction.spans?.[0];
20+
expect(childSpan?.data?.someAttribute).toBe('');
21+
});

dev-packages/browser-integration-tests/suites/public-api/startSpan/error-sync/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ sentryTest(
1212
'should capture an error within a sync startSpan callback',
1313
async ({ getLocalTestPath, page, browserName }) => {
1414
if (browserName === 'webkit') {
15-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
15+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1616
sentryTest.skip();
1717
}
1818

dev-packages/browser-integration-tests/suites/replay/sessionInactive/init.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ Sentry.init({
1818

1919
window.Replay._replay.timeouts = {
2020
sessionIdlePause: 1000, // this is usually 5min, but we want to test this with shorter times
21-
sessionIdleExpire: 900000, // defayult: 15min
21+
sessionIdleExpire: 900000, // default: 15min
2222
};

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ sentryTest(
3030
const spans = [...res0.performanceSpans, ...res1.performanceSpans];
3131
expect(breadcrumbs.filter(breadcrumb => breadcrumb.category === 'replay.throttled').length).toBe(1);
3232
// replay.throttled breadcrumb does *not* use the throttledAddEvent as we
33-
// alwants want that breadcrumb to be present in replay
33+
// always want that breadcrumb to be present in replay
3434
expect(breadcrumbs.length + spans.length).toBe(THROTTLE_LIMIT + 1);
3535
},
3636
);

dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/error/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ sentryTest(
1111
'should put the pageload transaction name onto an error event caught during pageload',
1212
async ({ getLocalTestPath, page, browserName }) => {
1313
if (browserName === 'webkit') {
14-
// This test fails on Webkit as erros thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
14+
// This test fails on Webkit as errors thrown from `runScriptInSandbox` are Script Errors and skipped by Sentry
1515
sentryTest.skip();
1616
}
1717

dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/interactions/subject.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
const blockUI = e => {
22
const startTime = Date.now();
33

4-
function getElasped() {
4+
function getElapsed() {
55
const time = Date.now();
66
return time - startTime;
77
}
88

9-
while (getElasped() < 70) {
9+
while (getElapsed() < 70) {
1010
//
1111
}
1212

Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
(() => {
22
const startTime = Date.now();
33

4-
function getElasped() {
4+
function getElapsed() {
55
const time = Date.now();
66
return time - startTime;
77
}
88

9-
while (getElasped() < 101) {
9+
while (getElapsed() < 101) {
1010
//
1111
}
1212
})();
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
(() => {
22
const startTime = Date.now();
33

4-
function getElasped() {
4+
function getElapsed() {
55
const time = Date.now();
66
return time - startTime;
77
}
88

9-
while (getElasped() < 101) {
9+
while (getElapsed() < 101) {
1010
//
1111
}
1212
})();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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: [
8+
Sentry.browserTracingIntegration({
9+
idleTimeout: 9000,
10+
enableLongAnimationFrame: false,
11+
instrumentPageLoad: false,
12+
instrumentNavigation: true,
13+
enableInp: false,
14+
enableLongTask: true,
15+
}),
16+
],
17+
tracesSampleRate: 1,
18+
debug: true,
19+
});

0 commit comments

Comments
 (0)