Skip to content

Commit 60ba722

Browse files
committed
Merge branch 'develop' into feat/remix-fastify-adapter
2 parents 838de36 + d381ace commit 60ba722

File tree

413 files changed

+8455
-7238
lines changed

Some content is hidden

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

413 files changed

+8455
-7238
lines changed

.github/workflows/auto-release.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,27 @@ jobs:
2020

2121
# https://github.com/actions-ecosystem/action-regex-match
2222
- uses: actions-ecosystem/action-regex-match@v2
23-
id: version
23+
id: version-regex
2424
with:
2525
# Parse version from head branch
2626
text: ${{ github.head_ref }}
2727
# match: preprare-release/xx.xx.xx
2828
regex: '^prepare-release\/(\d+\.\d+\.\d+)(?:-(alpha|beta)\.\d+)?$'
2929

30+
- name: Extract version
31+
id: get_version
32+
run: |
33+
version=${{ steps.version-regex.outputs.match }}
34+
version=${version/'prepare-release/'/''}
35+
echo "version=$version" >> $GITHUB_OUTPUT
36+
3037
- name: Prepare release
3138
uses: getsentry/action-prepare-release@v1
32-
if: github.event.pull_request.merged == true && steps.version.outputs.match != ''
39+
if: github.event.pull_request.merged == true && steps.version-regex.outputs.match != '' && steps.get_version.outputs.version != ''
3340
env:
3441
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_PAT }}
3542
with:
36-
version: ${{ steps.version.outputs.group1 }}
43+
version: ${{ steps.get_version.outputs.version }}
3744
force: false
3845
merge_target: master
3946
craft_config_from_merge_target: true

.github/workflows/build.yml

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -768,40 +768,6 @@ jobs:
768768
name: playwright-traces
769769
path: dev-packages/browser-integration-tests/test-results
770770

771-
job_browser_integration_tests:
772-
name: Browser (${{ matrix.browser }}) Tests
773-
needs: [job_get_metadata, job_build]
774-
if: needs.job_get_metadata.outputs.changed_browser == 'true' || github.event_name != 'pull_request'
775-
runs-on: ubuntu-20.04
776-
timeout-minutes: 20
777-
strategy:
778-
fail-fast: false
779-
matrix:
780-
browser:
781-
- ChromeHeadless
782-
- FirefoxHeadless
783-
- WebkitHeadless
784-
steps:
785-
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
786-
uses: actions/checkout@v4
787-
with:
788-
ref: ${{ env.HEAD_COMMIT }}
789-
- name: Set up Node
790-
uses: actions/setup-node@v4
791-
with:
792-
node-version-file: 'package.json'
793-
- name: Restore caches
794-
uses: ./.github/actions/restore-cache
795-
env:
796-
DEPENDENCY_CACHE_KEY: ${{ needs.job_build.outputs.dependency_cache_key }}
797-
- name: Run integration tests
798-
env:
799-
KARMA_BROWSER: ${{ matrix.browser }}
800-
run: |
801-
cd packages/browser
802-
[[ $KARMA_BROWSER == WebkitHeadless ]] && yarn run playwright install-deps webkit
803-
yarn test:integration
804-
805771
job_browser_build_tests:
806772
name: Browser Build Tests
807773
needs: [job_get_metadata, job_build]
@@ -942,12 +908,10 @@ jobs:
942908
# We want to run this if:
943909
# - The build job was successful, not skipped
944910
# - AND if the profiling node bindings were either successful or skipped
945-
# AND if this is not a PR from a fork or dependabot
946911
if: |
947912
always() && needs.job_build.result == 'success' &&
948913
(needs.job_compile_bindings_profiling_node.result == 'success' || needs.job_compile_bindings_profiling_node.result == 'skipped') &&
949-
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
950-
github.actor != 'dependabot[bot]'
914+
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
951915
needs: [job_get_metadata, job_build, job_compile_bindings_profiling_node]
952916
runs-on: ubuntu-20.04-large-js
953917
timeout-minutes: 15
@@ -1005,13 +969,11 @@ jobs:
1005969
job_e2e_tests:
1006970
name: E2E ${{ matrix.label || matrix.test-application }} Test
1007971
# We only run E2E tests for non-fork PRs because the E2E tests require secrets to work and they can't be accessed from forks
1008-
# Dependabot PRs sadly also don't have access to secrets, so we skip them as well
1009972
# We need to add the `always()` check here because the previous step has this as well :(
1010973
# See: https://github.com/actions/runner/issues/2205
1011974
if:
1012975
always() && needs.job_e2e_prepare.result == 'success' &&
1013-
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
1014-
github.actor != 'dependabot[bot]'
976+
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
1015977
needs: [job_get_metadata, job_build, job_e2e_prepare]
1016978
runs-on: ubuntu-20.04
1017979
timeout-minutes: 10
@@ -1036,6 +998,7 @@ jobs:
1036998
'create-next-app',
1037999
'create-remix-app',
10381000
'create-remix-app-v2',
1001+
'create-remix-app-express',
10391002
'create-remix-app-express-vite-dev',
10401003
'create-remix-app-fastify-vite',
10411004
'debug-id-sourcemaps',
@@ -1045,8 +1008,10 @@ jobs:
10451008
'react-create-hash-router',
10461009
'react-router-6-use-routes',
10471010
'standard-frontend-react',
1011+
'svelte-5',
10481012
'sveltekit',
10491013
'sveltekit-2',
1014+
'sveltekit-2-svelte-5',
10501015
'generic-ts3.8',
10511016
'node-fastify-app',
10521017
# TODO(v8): Re-enable hapi tests
@@ -1142,14 +1107,14 @@ jobs:
11421107
job_profiling_e2e_tests:
11431108
name: E2E ${{ matrix.label || matrix.test-application }} Test
11441109
# We only run E2E tests for non-fork PRs because the E2E tests require secrets to work and they can't be accessed from forks
1145-
# Dependabot PRs sadly also don't have access to secrets, so we skip them as well
1110+
# Dependabot specifically also has access to secrets
11461111
# We need to add the `always()` check here because the previous step has this as well :(
11471112
# See: https://github.com/actions/runner/issues/2205
11481113
if:
11491114
# Only run profiling e2e tests if profiling node bindings have changed
11501115
always() && needs.job_e2e_prepare.result == 'success' &&
11511116
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
1152-
github.actor != 'dependabot[bot]' && (
1117+
(
11531118
(needs.job_get_metadata.outputs.changed_profiling_node_bindings == 'true') ||
11541119
(needs.job_get_metadata.outputs.is_release == 'true') ||
11551120
(github.event_name != 'pull_request')
@@ -1241,7 +1206,6 @@ jobs:
12411206
job_nextjs_integration_test,
12421207
job_node_integration_tests,
12431208
job_browser_playwright_tests,
1244-
job_browser_integration_tests,
12451209
job_browser_loader_tests,
12461210
job_remix_integration_tests,
12471211
job_e2e_tests,

.size-limit.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,35 +52,28 @@ module.exports = [
5252
path: 'packages/browser/build/npm/esm/index.js',
5353
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'feedbackIntegration'),
5454
gzip: true,
55-
limit: '83 KB',
55+
limit: '87 KB',
5656
},
5757
{
5858
name: '@sentry/browser (incl. Feedback)',
5959
path: 'packages/browser/build/npm/esm/index.js',
6060
import: createImport('init', 'feedbackIntegration'),
6161
gzip: true,
62-
limit: '37 KB',
63-
},
64-
{
65-
name: '@sentry/browser (incl. Feedback, Feedback Modal)',
66-
path: 'packages/browser/build/npm/esm/index.js',
67-
import: createImport('init', 'feedbackIntegration', 'feedbackModalIntegration'),
68-
gzip: true,
69-
limit: '37 KB',
62+
limit: '40 KB',
7063
},
7164
{
72-
name: '@sentry/browser (incl. Feedback, Feedback Modal, Feedback Screenshot)',
65+
name: '@sentry/browser (incl. sendFeedback)',
7366
path: 'packages/browser/build/npm/esm/index.js',
74-
import: createImport('init', 'feedbackIntegration', 'feedbackModalIntegration', 'feedbackScreenshotIntegration'),
67+
import: createImport('init', 'sendFeedback'),
7568
gzip: true,
76-
limit: '40 KB',
69+
limit: '28 KB',
7770
},
7871
{
79-
name: '@sentry/browser (incl. sendFeedback)',
72+
name: '@sentry/browser (incl. FeedbackAsync)',
8073
path: 'packages/browser/build/npm/esm/index.js',
81-
import: createImport('init', 'sendFeedback'),
74+
import: createImport('init', 'feedbackAsyncIntegration'),
8275
gzip: true,
83-
limit: '30 KB',
76+
limit: '33 KB',
8477
},
8578
// React SDK (ESM)
8679
{
@@ -167,6 +160,13 @@ module.exports = [
167160
brotli: false,
168161
limit: '220 KB',
169162
},
163+
{
164+
name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed',
165+
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
166+
gzip: false,
167+
brotli: false,
168+
limit: '264 KB',
169+
},
170170
// Next.js SDK (ESM)
171171
{
172172
name: '@sentry/nextjs (client)',

CHANGELOG.md

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

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

7+
## 8.0.0-beta.4
8+
9+
### Important Changes
10+
11+
- **feat(browser): Add INP support for v8 (#11650)**
12+
13+
INP web vital support was now forward-ported to version 8. Recording of INP data is enabled by default.
14+
15+
- **feat(core): Increase default transport buffer size from 30 to 64 (#11764)**
16+
17+
The default limit of queued events to be sent was increased from 30 to 64 events. You may observe a higher memory
18+
footprint of the SDK. You can override this limit by setting the `transportOptions.bufferSize` option in
19+
`Sentry.init()`.
20+
21+
- **feat(replay): Add "maxCanvasSize" option for replay canvases (#11617)**
22+
23+
A `maxCanvasSize` option was added to the `replayCanvasIntegration` to disallow capturing of canvases larger than a
24+
certain size. This value defaults to `1280` which will not capture canvases bigger than 1280x1280 pixels.
25+
26+
### Other Changes
27+
28+
- deps: Downgrade `@opentelemetry/instrumentation-http` to `0.48.0` (#11745)
29+
- deps(nextjs): Remove unnecessary and faulty `@opentelemetry/api` dependency from Next.js package (#11717)
30+
- feat(aws): Add OTEL based integrations (#11548)
31+
- feat(core): Ensure trace context only includes relevant data (#11713)
32+
- feat(deps): Bump @opentelemetry/instrumentation-fastify from 0.33.0 to 0.35.0 (#11690)
33+
- feat(deps): Bump @opentelemetry/instrumentation-graphql from 0.37.0 to 0.39.0 (#11692)
34+
- feat(deps): Bump @opentelemetry/instrumentation-http from 0.48.0 to 0.50.0 (#11725)
35+
- feat(deps): Bump @opentelemetry/instrumentation-mongoose from 0.35.0 to 0.37.0 (#11693)
36+
- feat(deps): Bump @opentelemetry/instrumentation-mysql2 from 0.35.0 to 0.37.0 (#11726)
37+
- feat(deps): Bump @opentelemetry/instrumentation-nestjs-core from 0.34.0 to 0.36.0 (#11727)
38+
- feat(deps): Bump @opentelemetry/sdk-metrics from 1.21.0 to 1.23.0 (#11695)
39+
- feat(deps): Bump @prisma/instrumentation from 5.9.0 to 5.12.1 (#11724)
40+
- feat(feedback): Create async bundles and code to resolve helper integrations (#11621)
41+
- feat(nextjs): Sample out low-quality spans on older Next.js versions (#11722)
42+
- feat(opentelemetry): Support new http method attribute (#11756)
43+
- feat(opentelemetry): Use rest args for addOpenTelemetryInstrumentation (#11721)
44+
- feat(replay): Upgrade rrweb packages to 2.15.0 (#11736)
45+
- fix(browser): Ensure `lazyLoadIntegration` works in NPM mode (#11673)
46+
- fix(browser): Set custom sentry source correctly (#11735)
47+
- fix(ember): Do not create rendering spans without transaction (#11749)
48+
- fix(serverless): Check if cloud event callback is a function (#9044) (#11701)
49+
- ref(nextjs): Remove unnecessary logic to filter symbolification/sentry spans (#11714)
50+
751
## 8.0.0-beta.3
852

953
### Important Changes
@@ -807,6 +851,116 @@ We have also removed or updated a variety of deprecated APIs.
807851
- ref: Remove usage of span tags (#10808)
808852
- ref: Remove user segment (#10575)
809853

854+
## 7.112.2
855+
856+
- fix(nextjs|sveltekit): Ensure we can pass `browserTracingIntegration` (#11765)
857+
858+
## 7.112.1
859+
860+
- fix(ember/v7): Do not create rendering spans without transaction (#11750)
861+
862+
## 7.112.0
863+
864+
### Important Changes
865+
866+
- **feat: Export pluggable integrations from SDK packages (#11723)**
867+
868+
Instead of installing `@sentry/integrations`, you can now import the pluggable integrations directly from your SDK
869+
package:
870+
871+
```js
872+
// Before
873+
import * as Sentry fromv '@sentry/browser';
874+
import { dedupeIntegration } from '@sentry/integrations';
875+
876+
Sentry.init({
877+
integrations: [dedupeIntegration()],
878+
});
879+
880+
// After
881+
import * as Sentry from '@sentry/browser';
882+
883+
Sentry.init({
884+
integrations: [Sentry.dedupeIntegration()],
885+
});
886+
```
887+
888+
Note that only the functional integrations (e.g. `xxxIntegration()`) are re-exported.
889+
890+
### Other Changes
891+
892+
- feat(replay): Add "maxCanvasSize" option for replay canvases (#11732)
893+
- fix(serverless): [v7] Check if cloud event callback is a function (#11734)
894+
895+
## 7.111.0
896+
897+
- feat(core): Add `server.address` to browser `http.client` spans (#11663)
898+
- fix: Ensure next & sveltekit correctly handle `browserTracingIntegration` (#11647)
899+
- fix(browser): Don't assume window.document is available (#11598)
900+
901+
## 7.110.1
902+
903+
- fix(nextjs): Fix `tunnelRoute` matching logic for hybrid cloud (#11577)
904+
905+
## 7.110.0
906+
907+
### Important Changes
908+
909+
- **feat(tracing): Add interactions sample rate to browser tracing integrations (#11382)**
910+
911+
You can now use a `interactionsSampleRate` to control the sample rate of INP spans. `interactionsSampleRate` is applied
912+
on top of the global `tracesSampleRate`. Therefore if `interactionsSampleRate` is `0.5` and `tracesSampleRate` is `0.1`,
913+
then the actual sample rate for interactions is `0.05`.
914+
915+
```js
916+
Sentry.init({
917+
tracesSampleRate: 0.1,
918+
integrations: [
919+
Sentry.browserTracingIntegration({
920+
interactionsSampleRate: 0.5,
921+
}),
922+
],
923+
});
924+
```
925+
926+
- **Deprecations**
927+
928+
This release deprecates the `Hub` class, as well as the `addRequestDataToTransaction` method. The `trpcMiddleware`
929+
method is no longer on the `Handlers` export, but instead is a standalone export.
930+
931+
Please see the detailed [Migration docs](./MIGRATION.md#deprecations-in-7x) on how to migrate to the new APIs.
932+
933+
- feat: Deprecate and relocate `trpcMiddleware` (#11389)
934+
- feat(core): Deprecate `Hub` class (#11528)
935+
- feat(types): Deprecate `Hub` interface (#11530)
936+
- ref: Deprecate `addRequestDataToTransaction` (#11368)
937+
938+
### Other Changes
939+
940+
- feat(core): Update metric normalization (#11519)
941+
- feat(feedback): Customize feedback placeholder text color (#11521)
942+
- feat(remix): Skip span creation for `OPTIONS` and `HEAD` request. (#11485)
943+
- feat(utils): Add metric buckets rate limit (#11506)
944+
- fix(core): unref timer to not block node exit (#11483)
945+
- fix(metrics): Map `statsd` to `metric_bucket` (#11505)
946+
- fix(spans): Allow zero exclusive time for INP spans (#11408)
947+
- ref(feedback): Configure feedback fonts (#11520)
948+
949+
## 7.109.0
950+
951+
This release deprecates some exports from the `@sentry/replay` package. These exports have been moved to the browser SDK
952+
(or related framework SDKs like `@sentry/react`).
953+
954+
- feat(feedback): Make "required" text for input elements configurable (#11287)
955+
- feat(node): Add scope to ANR events (#11267)
956+
- feat(replay): Bump `rrweb` to 2.12.0 (#11317)
957+
- fix(node): Local variables skipped after Promise (#11248)
958+
- fix(node): Skip capturing Hapi Boom error responses (#11324)
959+
- fix(web-vitals): Check for undefined navigation entry (#11312)
960+
- ref(replay): Deprecate `@sentry/replay` exports (#11242)
961+
962+
Work in this release contributed by @soerface. Thank you for your contribution!
963+
810964
## 7.108.0
811965

812966
This release fixes issues with Time to First Byte (TTFB) calculation in the SDK that was introduced with `7.95.0`. It

0 commit comments

Comments
 (0)