Skip to content

Commit 024f819

Browse files
authored
Merge pull request #18886 from getsentry/prepare-release/10.35.0
meta(changelog): Update changelog for 10.35.0
2 parents bee7225 + 8160ada commit 024f819

File tree

126 files changed

+2584
-182
lines changed

Some content is hidden

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

126 files changed

+2584
-182
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ jobs:
572572
- bundle_tracing_replay
573573
- bundle_tracing_replay_feedback
574574
- bundle_tracing_replay_feedback_min
575+
- bundle_tracing_replay_feedback_logs_metrics
575576
project:
576577
- chromium
577578
include:

.github/workflows/external-contributors.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,17 @@ jobs:
3535
name: ${{ github.event.pull_request.user.login }}
3636
author_association: ${{ github.event.pull_request.author_association }}
3737

38+
- name: Generate GitHub App token
39+
id: app-token
40+
uses: actions/create-github-app-token@v1
41+
with:
42+
app-id: ${{ vars.GITFLOW_APP_ID }}
43+
private-key: ${{ secrets.GITFLOW_APP_PRIVATE_KEY }}
44+
3845
- name: Create PR with changes
3946
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725
4047
with:
41-
# This token is scoped to Daniel Griesser
42-
# If we used the default GITHUB_TOKEN, the resulting PR would not trigger CI :(
43-
token: ${{ secrets.REPO_SCOPED_TOKEN }}
48+
token: ${{ steps.app-token.outputs.token }}
4449
commit-message: 'chore: Add external contributor to CHANGELOG.md'
4550
title: 'chore: Add external contributor to CHANGELOG.md'
4651
branch: 'external-contributor/patch-${{ github.event.pull_request.user.login }}'

.github/workflows/gitflow-sync-develop.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ jobs:
2525
- name: git checkout
2626
uses: actions/checkout@v6
2727

28+
- name: Generate GitHub App token
29+
id: app-token
30+
uses: actions/create-github-app-token@v1
31+
with:
32+
app-id: ${{ vars.GITFLOW_APP_ID }}
33+
private-key: ${{ secrets.GITFLOW_APP_PRIVATE_KEY }}
34+
2835
# https://github.com/marketplace/actions/github-pull-request-action
2936
- name: Create Pull Request
3037
id: open-pr
@@ -35,8 +42,7 @@ jobs:
3542
pr_title: '[Gitflow] Merge ${{ env.SOURCE_BRANCH }} into ${{ env.TARGET_BRANCH }}'
3643
pr_body: 'Merge ${{ env.SOURCE_BRANCH }} branch into ${{ env.TARGET_BRANCH }}'
3744
pr_label: 'Dev: Gitflow'
38-
# This token is scoped to Daniel Griesser
39-
github_token: ${{ secrets.REPO_SCOPED_TOKEN }}
45+
github_token: ${{ steps.app-token.outputs.token }}
4046

4147
- name: Enable automerge for PR
4248
if: steps.open-pr.outputs.pr_number != ''

.size-limit.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,12 @@ module.exports = [
204204
gzip: true,
205205
limit: '86 KB',
206206
},
207+
{
208+
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)',
209+
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
210+
gzip: true,
211+
limit: '86 KB',
212+
},
207213
// browser CDN bundles (non-gzipped)
208214
{
209215
name: 'CDN Bundle - uncompressed',
@@ -240,6 +246,13 @@ module.exports = [
240246
brotli: false,
241247
limit: '264 KB',
242248
},
249+
{
250+
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed',
251+
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
252+
gzip: false,
253+
brotli: false,
254+
limit: '264 KB',
255+
},
243256
// Next.js SDK (ESM)
244257
{
245258
name: '@sentry/nextjs (client)',

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,62 @@
44

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

7+
## 10.35.0
8+
9+
### Important Changes
10+
11+
- **feat(tanstackstart-react): Add `sentryTanstackStart` vite plugin to manage automatic source map uploads ([#18712](https://github.com/getsentry/sentry-javascript/pull/18712))**
12+
13+
You can now configure source maps upload for TanStack Start using the `sentryTanstackStart` Vite plugin:
14+
15+
```ts
16+
// vite.config.ts
17+
import { defineConfig } from 'vite';
18+
import { sentryTanstackStart } from '@sentry/tanstackstart-react';
19+
import { tanstackStart } from '@tanstack/react-start/plugin/vite';
20+
21+
export default defineConfig({
22+
plugins: [
23+
sentryTanstackStart({
24+
authToken: process.env.SENTRY_AUTH_TOKEN,
25+
org: 'your-org',
26+
project: 'your-project',
27+
}),
28+
tanstackStart(),
29+
],
30+
});
31+
```
32+
33+
### Other Changes
34+
35+
- feat(browser): Add CDN bundle for `tracing.replay.feedback.logs.metrics` ([#18785](https://github.com/getsentry/sentry-javascript/pull/18785))
36+
- feat(browser): Add shim package for logs ([#18831](https://github.com/getsentry/sentry-javascript/pull/18831))
37+
- feat(cloudflare): Automatically set the release id when CF_VERSION_METADATA is enabled ([#18855](https://github.com/getsentry/sentry-javascript/pull/18855))
38+
- feat(core): Add `ignored` client report event drop reason ([#18815](https://github.com/getsentry/sentry-javascript/pull/18815))
39+
- feat(logs): Add `Log` exports to browser and node packages ([#18857](https://github.com/getsentry/sentry-javascript/pull/18857))
40+
- feat(node-core,bun): Export processSessionIntegration from node-core and add it to bun ([#18852](https://github.com/getsentry/sentry-javascript/pull/18852))
41+
- fix(core): Find the correct IP address regardless their case ([#18880](https://github.com/getsentry/sentry-javascript/pull/18880))
42+
- fix(core): Check for AI operation id to detect a vercelai span ([#18823](https://github.com/getsentry/sentry-javascript/pull/18823))
43+
- fix(ember): Use ES5 syntax in inline vendor scripts ([#18858](https://github.com/getsentry/sentry-javascript/pull/18858))
44+
- fix(fetch): Shallow-clone fetch options to prevent mutation ([#18867](https://github.com/getsentry/sentry-javascript/pull/18867))
45+
46+
<details>
47+
<summary><strong>Internal Changes</strong></summary>
48+
49+
- chore(ci): Use javascript-sdk-gitflow app instead of personal token ([#18829](https://github.com/getsentry/sentry-javascript/pull/18829))
50+
- chore(deps): Bump `@sveltejs/kit` devDependency to `2.49.5` ([#18848](https://github.com/getsentry/sentry-javascript/pull/18848))
51+
- chore(deps): Bump bundler plugins to ^4.6.2 ([#18822](https://github.com/getsentry/sentry-javascript/pull/18822))
52+
- chore(deps): bump hono from 4.10.3 to 4.11.4 in /dev-packages/e2e-tests/test-applications/cloudflare-hono ([#18806](https://github.com/getsentry/sentry-javascript/pull/18806))
53+
- chore(test): Bump svelte dependencies ([#18850](https://github.com/getsentry/sentry-javascript/pull/18850))
54+
- chore(core): Comment out Error tests in langchain ([#18837](https://github.com/getsentry/sentry-javascript/pull/18837))
55+
- meta(changelog): Fix entry for tanstack start vite plugin ([#18883](https://github.com/getsentry/sentry-javascript/pull/18883))
56+
- test(e2e): Add testing app for User Feedback ([#18877](https://github.com/getsentry/sentry-javascript/pull/18877))
57+
- test(fastify): Verify if upstream error is fixed and won't regress ([#18838](https://github.com/getsentry/sentry-javascript/pull/18838))
58+
59+
</details>
60+
61+
Work in this release was contributed by @rreckonerr. Thank you for your contribution!
62+
763
## 10.34.0
864

965
### Important Changes

dev-packages/browser-integration-tests/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"test:bundle:tracing_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_logs_metrics_debug_min yarn test",
2929
"test:bundle:full": "PW_BUNDLE=bundle_tracing_replay_feedback yarn test",
3030
"test:bundle:full:min": "PW_BUNDLE=bundle_tracing_replay_feedback_min yarn test",
31+
"test:bundle:tracing_replay_feedback_logs_metrics": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics yarn test",
32+
"test:bundle:tracing_replay_feedback_logs_metrics:min": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics_min yarn test",
33+
"test:bundle:tracing_replay_feedback_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics_debug_min yarn test",
3134
"test:cjs": "PW_BUNDLE=cjs yarn test",
3235
"test:esm": "PW_BUNDLE=esm yarn test",
3336
"test:loader": "npx playwright test -c playwright.loader.config.ts --project='chromium'",
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
// consoleLoggingIntegration should not actually work, but still not error out
6+
Sentry.init({
7+
dsn: 'https://public@dsn.ingest.sentry.io/1337',
8+
sampleRate: 1,
9+
integrations: [Sentry.consoleLoggingIntegration()],
10+
});
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { expect } from '@playwright/test';
2+
import { sentryTest } from '../../../../utils/fixtures';
3+
4+
sentryTest('exports a shim consoleLoggingIntegration for non-logs bundles', async ({ getLocalTestUrl, page }) => {
5+
const bundle = process.env.PW_BUNDLE;
6+
7+
// Only run this for CDN bundles that do NOT include logs
8+
// Skip minified bundles because DEBUG_BUILD is false and warnings won't appear
9+
if (!bundle?.startsWith('bundle') || bundle.includes('logs') || bundle.includes('min')) {
10+
sentryTest.skip();
11+
}
12+
13+
const consoleMessages: string[] = [];
14+
page.on('console', msg => consoleMessages.push(msg.text()));
15+
16+
let requestCount = 0;
17+
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
18+
requestCount++;
19+
return route.fulfill({
20+
status: 200,
21+
contentType: 'application/json',
22+
body: JSON.stringify({ id: 'test-id' }),
23+
});
24+
});
25+
26+
const url = await getLocalTestUrl({ testDir: __dirname, skipDsnRouteHandler: true });
27+
28+
await page.goto(url);
29+
30+
// Wait a bit to ensure no requests are made
31+
await page.waitForTimeout(500);
32+
33+
expect(requestCount).toBe(0);
34+
expect(consoleMessages).toEqual([
35+
'You are using consoleLoggingIntegration() even though this bundle does not include logs.',
36+
]);
37+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
sampleRate: 1,
8+
});
9+
10+
// These should not actually work, but still not error out
11+
Sentry.logger.trace('test trace');
12+
Sentry.logger.debug('test debug');
13+
Sentry.logger.info('test info');
14+
Sentry.logger.warn('test warn');
15+
Sentry.logger.error('test error');
16+
Sentry.logger.fatal('test fatal');
17+
const testVar = 'test';
18+
Sentry.logger.info(Sentry.logger.fmt`formatted ${testVar}`);
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { expect } from '@playwright/test';
2+
import { sentryTest } from '../../../../utils/fixtures';
3+
4+
sentryTest('exports a shim logger for non-logs bundles', async ({ getLocalTestUrl, page }) => {
5+
const bundle = process.env.PW_BUNDLE;
6+
7+
// Only run this for CDN bundles that do NOT include logs
8+
// Skip minified bundles because DEBUG_BUILD is false and warnings won't appear
9+
if (!bundle?.startsWith('bundle') || bundle.includes('logs') || bundle.includes('min')) {
10+
sentryTest.skip();
11+
}
12+
13+
const consoleMessages: string[] = [];
14+
page.on('console', msg => consoleMessages.push(msg.text()));
15+
16+
let requestCount = 0;
17+
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
18+
requestCount++;
19+
return route.fulfill({
20+
status: 200,
21+
contentType: 'application/json',
22+
body: JSON.stringify({ id: 'test-id' }),
23+
});
24+
});
25+
26+
const url = await getLocalTestUrl({ testDir: __dirname, skipDsnRouteHandler: true });
27+
28+
await page.goto(url);
29+
30+
// Wait a bit to ensure no requests are made
31+
await page.waitForTimeout(500);
32+
33+
expect(requestCount).toBe(0);
34+
35+
expect(consoleMessages).toContain('You are using Sentry.logger.* even though this bundle does not include logs.');
36+
expect(consoleMessages).toContain('You are using Sentry.logger.fmt even though this bundle does not include logs.');
37+
});

0 commit comments

Comments
 (0)