Skip to content

Commit 1e407cb

Browse files
authored
Merge pull request #15967 from getsentry/prepare-release/9.11.0
meta: Update CHANGELOG for 9.11.0
2 parents a27d9ef + 90ee178 commit 1e407cb

File tree

114 files changed

+1627
-678
lines changed

Some content is hidden

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

114 files changed

+1627
-678
lines changed

.craft.yml

+6
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,12 @@ targets:
193193
onlyIfPresent: /^sentry-gatsby-\d.*\.tgz$/
194194
'npm:@sentry/google-cloud-serverless':
195195
onlyIfPresent: /^sentry-google-cloud-serverless-\d.*\.tgz$/
196+
'npm:@sentry/nestjs':
197+
onlyIfPresent: /^sentry-nestjs-\d.*\.tgz$/
196198
'npm:@sentry/nextjs':
197199
onlyIfPresent: /^sentry-nextjs-\d.*\.tgz$/
200+
'npm:@sentry/nuxt':
201+
onlyIfPresent: /^sentry-nuxt-\d.*\.tgz$/
198202
'npm:@sentry/node':
199203
onlyIfPresent: /^sentry-node-\d.*\.tgz$/
200204
'npm:@sentry/react':
@@ -211,6 +215,8 @@ targets:
211215
onlyIfPresent: /^sentry-svelte-\d.*\.tgz$/
212216
'npm:@sentry/sveltekit':
213217
onlyIfPresent: /^sentry-sveltekit-\d.*\.tgz$/
218+
'npm:@sentry/tanstackstart-react':
219+
onlyIfPresent: /^sentry-tanstackstart-react-\d.*\.tgz$/
214220
'npm:@sentry/vercel-edge':
215221
onlyIfPresent: /^sentry-vercel-edge-\d.*\.tgz$/
216222
'npm:@sentry/vue':

.github/workflows/auto-release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
steps:
1616
- name: Get auth token
1717
id: token
18-
uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5
18+
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
1919
with:
2020
app-id: ${{ vars.SENTRY_RELEASE_BOT_CLIENT_ID }}
2121
private-key: ${{ secrets.SENTRY_RELEASE_BOT_PRIVATE_KEY }}

.github/workflows/build.yml

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ env:
4444
CACHED_BUILD_PATHS: |
4545
${{ github.workspace }}/dev-packages/*/build
4646
${{ github.workspace }}/packages/*/build
47+
${{ github.workspace }}/packages/*/lib
4748
${{ github.workspace }}/packages/ember/*.d.ts
4849
${{ github.workspace }}/packages/gatsby/*.d.ts
4950
${{ github.workspace }}/packages/utils/cjs

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
steps:
2020
- name: Get auth token
2121
id: token
22-
uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5
22+
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
2323
with:
2424
app-id: ${{ vars.SENTRY_RELEASE_BOT_CLIENT_ID }}
2525
private-key: ${{ secrets.SENTRY_RELEASE_BOT_PRIVATE_KEY }}

.size-limit.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -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: '80.5 KB',
82+
limit: '81 KB',
8383
},
8484
{
8585
name: '@sentry/browser (incl. Tracing, Replay, Feedback)',
@@ -210,7 +210,7 @@ module.exports = [
210210
import: createImport('init'),
211211
ignore: ['next/router', 'next/constants'],
212212
gzip: true,
213-
limit: '41 KB',
213+
limit: '42 KB',
214214
},
215215
// SvelteKit SDK (ESM)
216216
{
@@ -219,7 +219,7 @@ module.exports = [
219219
import: createImport('init'),
220220
ignore: ['$app/stores'],
221221
gzip: true,
222-
limit: '38 KB',
222+
limit: '38.5 KB',
223223
},
224224
// Node SDK (ESM)
225225
{

CHANGELOG.md

+15
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,21 @@
1010

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

13+
## 9.11.0
14+
15+
- feat(browser): Add `http.redirect_count` attribute to `browser.redirect` span ([#15943](https://github.com/getsentry/sentry-javascript/pull/15943))
16+
- feat(core): Add `consoleLoggingIntegration` for logs ([#15955](https://github.com/getsentry/sentry-javascript/pull/15955))
17+
- feat(core): Don't truncate error messages ([#15818](https://github.com/getsentry/sentry-javascript/pull/15818))
18+
- feat(nextjs): Add release injection in Turbopack ([#15958](https://github.com/getsentry/sentry-javascript/pull/15958))
19+
- feat(nextjs): Record `turbopack` as tag ([#15928](https://github.com/getsentry/sentry-javascript/pull/15928))
20+
- feat(nuxt): Base decision on source maps upload only on Nuxt source map settings ([#15859](https://github.com/getsentry/sentry-javascript/pull/15859))
21+
- feat(react-router): Add `sentryHandleRequest` ([#15787](https://github.com/getsentry/sentry-javascript/pull/15787))
22+
- fix(node): Use `module` instead of `require` for CJS check ([#15927](https://github.com/getsentry/sentry-javascript/pull/15927))
23+
- fix(remix): Remove mentions of deprecated `ErrorBoundary` wrapper ([#15930](https://github.com/getsentry/sentry-javascript/pull/15930))
24+
- ref(browser): Temporarily add `sentry.previous_trace` span attribute ([#15957](https://github.com/getsentry/sentry-javascript/pull/15957))
25+
- ref(browser/core): Move all log flushing logic into clients ([#15831](https://github.com/getsentry/sentry-javascript/pull/15831))
26+
- ref(core): Improve URL parsing utilities ([#15882](https://github.com/getsentry/sentry-javascript/pull/15882))
27+
1328
## 9.10.1
1429

1530
- fix: Correct @sentry-internal/feedback docs to match the code ([#15874](https://github.com/getsentry/sentry-javascript/pull/15874))
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
const wat = new Error(`This is a very long message that should be truncated and will be,
2-
this is a very long message that should be truncated and will be,
3-
this is a very long message that should be truncated and will be,
4-
this is a very long message that should be truncated and will be,
5-
this is a very long message that should be truncated and will be`);
1+
const wat = new Error(`This is a very long message that should not be truncated and won't be,
2+
this is a very long message that should not be truncated and won't be,
3+
this is a very long message that should not be truncated and won't be,
4+
this is a very long message that should not be truncated and won't be,
5+
this is a very long message that should not be truncated and won't be`);
66

7-
wat.cause = new Error(`This is a very long message that should be truncated and hopefully will be,
8-
this is a very long message that should be truncated and hopefully will be,
9-
this is a very long message that should be truncated and hopefully will be,
10-
this is a very long message that should be truncated and hopefully will be,
11-
this is a very long message that should be truncated and hopefully will be,`);
7+
wat.cause = new Error(`This is a very long message that should not be truncated and hopefully won't be,
8+
this is a very long message that should not be truncated and hopefully won't be,
9+
this is a very long message that should not be truncated and hopefully won't be,
10+
this is a very long message that should not be truncated and hopefully won't be,
11+
this is a very long message that should not be truncated and hopefully won't be`);
1212

1313
Sentry.captureException(wat);

dev-packages/browser-integration-tests/suites/public-api/captureException/linkedErrors/test.ts

+10-8
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ sentryTest('should capture a linked error with messages', async ({ getLocalTestU
1212
expect(eventData.exception?.values).toHaveLength(2);
1313
expect(eventData.exception?.values?.[0]).toMatchObject({
1414
type: 'Error',
15-
value: `This is a very long message that should be truncated and hopefully will be,
16-
this is a very long message that should be truncated and hopefully will be,
17-
this is a very long message that should be truncated and hopefully will be,
18-
this is a very long me...`,
15+
value: `This is a very long message that should not be truncated and hopefully won't be,
16+
this is a very long message that should not be truncated and hopefully won't be,
17+
this is a very long message that should not be truncated and hopefully won't be,
18+
this is a very long message that should not be truncated and hopefully won't be,
19+
this is a very long message that should not be truncated and hopefully won't be`,
1920
mechanism: {
2021
type: 'chained',
2122
handled: true,
@@ -26,10 +27,11 @@ this is a very long me...`,
2627
});
2728
expect(eventData.exception?.values?.[1]).toMatchObject({
2829
type: 'Error',
29-
value: `This is a very long message that should be truncated and will be,
30-
this is a very long message that should be truncated and will be,
31-
this is a very long message that should be truncated and will be,
32-
this is a very long message that should be truncated...`,
30+
value: `This is a very long message that should not be truncated and won't be,
31+
this is a very long message that should not be truncated and won't be,
32+
this is a very long message that should not be truncated and won't be,
33+
this is a very long message that should not be truncated and won't be,
34+
this is a very long message that should not be truncated and won't be`,
3335
mechanism: {
3436
type: 'generic',
3537
handled: true,

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onUnhandledRejection/thrown-string-large/subject.js

-9
This file was deleted.

dev-packages/browser-integration-tests/suites/public-api/instrumentation/onUnhandledRejection/thrown-string-large/test.ts

-22
This file was deleted.
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+
Sentry.init({
6+
dsn: 'https://[email protected]/1337',
7+
_experiments: {
8+
enableLogs: true,
9+
},
10+
integrations: [Sentry.consoleLoggingIntegration()],
11+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
console.trace('console.trace', 123, false);
2+
console.debug('console.debug', 123, false);
3+
console.log('console.log', 123, false);
4+
console.info('console.info', 123, false);
5+
console.warn('console.warn', 123, false);
6+
console.error('console.error', 123, false);
7+
console.assert(false, 'console.assert', 123, false);
8+
9+
console.log('');
10+
11+
Sentry.flush();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
import { expect } from '@playwright/test';
2+
import type { OtelLogEnvelope } from '@sentry/core';
3+
4+
import { sentryTest } from '../../../../utils/fixtures';
5+
import { getFirstSentryEnvelopeRequest, properFullEnvelopeRequestParser } from '../../../../utils/helpers';
6+
7+
sentryTest('should capture console object calls', async ({ getLocalTestUrl, page }) => {
8+
const bundle = process.env.PW_BUNDLE || '';
9+
// Only run this for npm package exports
10+
if (bundle.startsWith('bundle') || bundle.startsWith('loader')) {
11+
sentryTest.skip();
12+
}
13+
14+
const url = await getLocalTestUrl({ testDir: __dirname });
15+
16+
const event = await getFirstSentryEnvelopeRequest<OtelLogEnvelope>(page, url, properFullEnvelopeRequestParser);
17+
const envelopeItems = event[1];
18+
19+
expect(envelopeItems[0]).toEqual([
20+
{
21+
type: 'otel_log',
22+
},
23+
{
24+
severityText: 'trace',
25+
body: { stringValue: 'console.trace 123 false' },
26+
attributes: [],
27+
timeUnixNano: expect.any(String),
28+
traceId: expect.any(String),
29+
severityNumber: 1,
30+
},
31+
]);
32+
33+
expect(envelopeItems[1]).toEqual([
34+
{
35+
type: 'otel_log',
36+
},
37+
{
38+
severityText: 'debug',
39+
body: { stringValue: 'console.debug 123 false' },
40+
attributes: [],
41+
timeUnixNano: expect.any(String),
42+
traceId: expect.any(String),
43+
severityNumber: 5,
44+
},
45+
]);
46+
47+
expect(envelopeItems[2]).toEqual([
48+
{
49+
type: 'otel_log',
50+
},
51+
{
52+
severityText: 'info',
53+
body: { stringValue: 'console.log 123 false' },
54+
attributes: [],
55+
timeUnixNano: expect.any(String),
56+
traceId: expect.any(String),
57+
severityNumber: 10,
58+
},
59+
]);
60+
61+
expect(envelopeItems[3]).toEqual([
62+
{
63+
type: 'otel_log',
64+
},
65+
{
66+
severityText: 'info',
67+
body: { stringValue: 'console.info 123 false' },
68+
attributes: [],
69+
timeUnixNano: expect.any(String),
70+
traceId: expect.any(String),
71+
severityNumber: 9,
72+
},
73+
]);
74+
75+
expect(envelopeItems[4]).toEqual([
76+
{
77+
type: 'otel_log',
78+
},
79+
{
80+
severityText: 'warn',
81+
body: { stringValue: 'console.warn 123 false' },
82+
attributes: [],
83+
timeUnixNano: expect.any(String),
84+
traceId: expect.any(String),
85+
severityNumber: 13,
86+
},
87+
]);
88+
89+
expect(envelopeItems[5]).toEqual([
90+
{
91+
type: 'otel_log',
92+
},
93+
{
94+
severityText: 'error',
95+
body: { stringValue: 'console.error 123 false' },
96+
attributes: [],
97+
timeUnixNano: expect.any(String),
98+
traceId: expect.any(String),
99+
severityNumber: 17,
100+
},
101+
]);
102+
103+
expect(envelopeItems[6]).toEqual([
104+
{
105+
type: 'otel_log',
106+
},
107+
{
108+
severityText: 'error',
109+
body: { stringValue: 'Assertion failed: console.assert 123 false' },
110+
attributes: [],
111+
timeUnixNano: expect.any(String),
112+
traceId: expect.any(String),
113+
severityNumber: 17,
114+
},
115+
]);
116+
});

dev-packages/browser-integration-tests/suites/public-api/logger/test.ts renamed to dev-packages/browser-integration-tests/suites/public-api/logger/simple/test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { expect } from '@playwright/test';
22
import type { OtelLogEnvelope } from '@sentry/core';
33

4-
import { sentryTest } from '../../../utils/fixtures';
5-
import { getFirstSentryEnvelopeRequest, properFullEnvelopeRequestParser } from '../../../utils/helpers';
4+
import { sentryTest } from '../../../../utils/fixtures';
5+
import { getFirstSentryEnvelopeRequest, properFullEnvelopeRequestParser } from '../../../../utils/helpers';
66

77
sentryTest('should capture all logging methods', async ({ getLocalTestUrl, page }) => {
88
const bundle = process.env.PW_BUNDLE || '';

dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/previous-trace-links/default/test.ts

+8
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ sentryTest("navigation spans link back to previous trace's root span", async ({
4949
},
5050
]);
5151

52+
expect(navigation1TraceContext?.data).toMatchObject({
53+
'sentry.previous_trace': `${pageloadTraceId}-${pageloadTraceContext?.span_id}-1`,
54+
});
55+
5256
expect(navigation2TraceContext?.links).toEqual([
5357
{
5458
trace_id: navigation1TraceId,
@@ -60,6 +64,10 @@ sentryTest("navigation spans link back to previous trace's root span", async ({
6064
},
6165
]);
6266

67+
expect(navigation2TraceContext?.data).toMatchObject({
68+
'sentry.previous_trace': `${navigation1TraceId}-${navigation1TraceContext?.span_id}-1`,
69+
});
70+
6371
expect(pageloadTraceId).not.toEqual(navigation1TraceId);
6472
expect(navigation1TraceId).not.toEqual(navigation2TraceId);
6573
expect(pageloadTraceId).not.toEqual(navigation2TraceId);

dev-packages/browser-integration-tests/suites/tracing/browserTracingIntegration/previous-trace-links/negatively-sampled/test.ts

+4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ sentryTest('includes a span link to a previously negatively sampled span', async
3434
},
3535
]);
3636

37+
expect(navigationTraceContext?.data).toMatchObject({
38+
'sentry.previous_trace': expect.stringMatching(/[a-f0-9]{32}-[a-f0-9]{16}-0/),
39+
});
40+
3741
expect(navigationTraceContext?.trace_id).not.toEqual(navigationTraceContext?.links![0].trace_id);
3842
});
3943
});

dev-packages/e2e-tests/test-applications/nextjs-13/tests/client/fetch.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ test('should correctly instrument `fetch` for performance tracing', async ({ pag
4343
'sentry.op': 'http.client',
4444
'sentry.origin': 'auto.http.browser',
4545
},
46-
description: 'GET https://example.com',
46+
description: 'GET https://example.com/',
4747
op: 'http.client',
4848
parent_span_id: expect.stringMatching(/[a-f0-9]{16}/),
4949
span_id: expect.stringMatching(/[a-f0-9]{16}/),

dev-packages/e2e-tests/test-applications/nextjs-turbo/next-env.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
/// <reference types="next/navigation-types/compat/navigation" />
44

55
// NOTE: This file should not be edited
6-
// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
6+
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

dev-packages/e2e-tests/test-applications/nextjs-turbo/next.config.js

+3
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ const nextConfig = {
99

1010
module.exports = withSentryConfig(nextConfig, {
1111
silent: true,
12+
release: {
13+
name: 'foobar123',
14+
},
1215
});

0 commit comments

Comments
 (0)