Skip to content

Commit 6f7e66c

Browse files
authored
Merge branch 'develop' into chdsbd/mark-error-handler-errors-unhandled
2 parents 0ad66b7 + b877c10 commit 6f7e66c

File tree

213 files changed

+6286
-1316
lines changed

Some content is hidden

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

213 files changed

+6286
-1316
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -253,43 +253,6 @@ jobs:
253253
# `job_build` can't see `job_install_deps` and what it returned)
254254
dependency_cache_key: ${{ needs.job_install_deps.outputs.dependency_cache_key }}
255255

256-
job_pack_aws_lambda_layer:
257-
name: Pack and Upload AWS Lambda Layer
258-
needs: [job_get_metadata, job_build]
259-
# only upload the zipped layer file if we're about to release
260-
if: startsWith(github.ref, 'refs/heads/release/')
261-
runs-on: ubuntu-20.04
262-
steps:
263-
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
264-
uses: actions/checkout@v3
265-
with:
266-
ref: ${{ env.HEAD_COMMIT }}
267-
- name: Set up Node
268-
uses: actions/setup-node@v3
269-
with:
270-
node-version-file: 'package.json'
271-
- name: Restore caches
272-
uses: ./.github/actions/restore-cache
273-
env:
274-
DEPENDENCY_CACHE_KEY: ${{ needs.job_build.outputs.dependency_cache_key }}
275-
276-
- name: Get SDK version
277-
# `jq` reads JSON files, and `tee` pipes its input to the given location and to stdout. (Adding `-a` is the
278-
# equivalent of using >> rather than >.)
279-
run: |
280-
export SDK_VERSION=$(cat packages/core/package.json | jq --raw-output '.version')
281-
echo "SDK_VERSION=$SDK_VERSION" | tee -a $GITHUB_ENV
282-
- name: Move dist-serverless to root directory (requirement for zipping action)
283-
run: |
284-
mv ./packages/serverless/build/aws/dist-serverless .
285-
- name: Create and upload final zip file
286-
uses: getsentry/action-build-aws-lambda-extension@v1
287-
with:
288-
artifact_name: ${{ env.HEAD_COMMIT }}
289-
zip_file_name: sentry-node-serverless-${{ env.SDK_VERSION }}.zip
290-
build_cache_paths: ${{ env.CACHED_BUILD_PATHS }}
291-
build_cache_key: ${{ env.BUILD_CACHE_KEY }}
292-
293256
job_size_check:
294257
name: Size Check
295258
needs: [job_get_metadata, job_build]
@@ -399,6 +362,7 @@ jobs:
399362
${{ github.workspace }}/packages/integrations/build/bundles/**
400363
${{ github.workspace }}/packages/replay/build/bundles/**
401364
${{ github.workspace }}/packages/**/*.tgz
365+
${{ github.workspace }}/packages/serverless/build/aws/dist-serverless/*.zip
402366
403367
job_browser_unit_tests:
404368
name: Browser Unit Tests
@@ -511,7 +475,7 @@ jobs:
511475
needs: [job_get_metadata, job_build]
512476
if: needs.job_get_metadata.outputs.changed_browser_integration == 'true' || github.event_name != 'pull_request'
513477
runs-on: ubuntu-20.04
514-
timeout-minutes: 18
478+
timeout-minutes: 25
515479
strategy:
516480
fail-fast: false
517481
matrix:
@@ -808,6 +772,7 @@ jobs:
808772
job_node_integration_tests,
809773
job_browser_playwright_tests,
810774
job_browser_integration_tests,
775+
job_browser_loader_tests,
811776
job_remix_integration_tests,
812777
job_e2e_tests,
813778
]

.github/workflows/canary.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,14 @@ jobs:
5353
cd packages/e2e-tests
5454
yarn test:e2e
5555
- name: Create Issue
56-
if: failure()
56+
if: failure() && github.event_name == 'schedule'
5757
uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd
5858
env:
5959
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6060
RUN_LINK: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
6161
with:
6262
filename: .github/CANARY_FAILURE_TEMPLATE.md
63+
update_existing: true
6364

6465
job_ember_canary_test:
6566
name: Ember Canary Tests
@@ -92,10 +93,12 @@ jobs:
9293
yarn ember try:one ${{ matrix.scenario }} --skip-cleanup=true
9394
9495
- name: Create Issue
95-
if: failure()
96+
if: failure() && github.event_name == 'schedule'
9697
uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd
9798
env:
9899
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
99100
RUN_LINK: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
100101
with:
101102
filename: .github/CANARY_FAILURE_TEMPLATE.md
103+
update_existing: true
104+
title: 'Ember Canary tests failed'

CHANGELOG.md

Lines changed: 174 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,158 @@
44

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

7+
## 7.54.0
8+
9+
### Important Changes
10+
11+
- **feat(core): Add default entries to `ignoreTransactions` for Healthchecks #8191**
12+
13+
All SDKs now filter out health check transactions by default.
14+
These are transactions where the transaction name matches typical API health check calls, such as `/^.*healthy.*$/` or `/^. *heartbeat.*$/`. Take a look at [this list](https://github.com/getsentry/sentry-javascript/blob/8c6ad156829f7c4eec34e4a67e6dd866ba482d5d/packages/core/src/integrations/inboundfilters.ts#L8C2-L16) to learn which regexes we currently use to match transaction names.
15+
We believe that these transactions do not provide value in most cases and we want to save you some of your quota by filtering them out by default.
16+
These filters are implemented as default values for the top level `ignoreTransactions` option.
17+
18+
You can disable this filtering by manually specifiying the `InboundFilters` integration and setting the `disableTransactionDefaults` option:
19+
```js
20+
Sentry.init({
21+
//...
22+
integrations: [new InboundFilters({ disableTransactionDefaults: true })],
23+
})
24+
```
25+
26+
- **feat(replay): Add `mutationBreadcrumbLimit` and `mutationLimit` to Replay Options (#8228)**
27+
28+
The previously experimental options `mutationBreadcumbLimit` and `mutationLimit` have been promoted to regular Replay integration options.
29+
30+
A high number of DOM mutations (in a single event loop) can cause performance regressions in end-users' browsers.
31+
Use `mutationBreadcrumbLimit` to send a breadcrumb along with your recording if the mutation limit was reached.
32+
Use `mutationLimit` to stop recording if the mutation limit was reached.
33+
34+
- **feat(sveltekit): Add source maps support for Vercel (lambda) (#8256)**
35+
- feat(sveltekit): Auto-detect SvelteKit adapters (#8193)
36+
37+
The SvelteKit SDK can now be used if you deploy your SvelteKit app to Vercel.
38+
By default, the SDK's Vite plugin will detect the used adapter and adjust the source map uploading config as necessary.
39+
If you want to override the default adapter detection, you can specify the `adapter` option in the `sentrySvelteKit` options:
40+
41+
```js
42+
// vite.config.js
43+
export default defineConfig({
44+
plugins: [
45+
sentrySvelteKit({
46+
adapter: 'vercel',
47+
}),
48+
sveltekit(),
49+
],
50+
});
51+
```
52+
53+
Currently, the Vite plugin will configure itself correctly for `@sveltejs/adapter-auto`, `@sveltejs/adapter-vercel` and `@sveltejs/adapter-node`.
54+
55+
**Important:** The SvelteKit SDK is not yet compatible with Vercel's edge runtime.
56+
It will only work for lambda functions.
57+
58+
### Other Changes
59+
60+
- feat(replay): Throttle breadcrumbs to max 300/5s (#8086)
61+
- feat(sveltekit): Add option to control handling of unknown server routes (#8201)
62+
- fix(node): Strip query and fragment from request URLs without route parameters (#8213)
63+
- fix(remix): Don't log missing parameters warning on server-side. (#8269)
64+
- fix(remix): Pass `loadContext` through wrapped document request function (#8268)
65+
- fix(replay): Guard against missing key (#8246)
66+
- fix(sveltekit): Avoid capturing redirects and 4xx Http errors in request Handlers (#8215)
67+
- fix(sveltekit): Bump `magicast` to support `satisfied` keyword (#8254)
68+
- fix(wasm): Avoid throwing an error when WASM modules are loaded from blobs (#8263)
69+
70+
## 7.53.1
71+
72+
- chore(deps): bump socket.io-parser from 4.2.1 to 4.2.3 (#8196)
73+
- chore(svelte): Bump magic-string to 0.30.0 (#8197)
74+
- fix(core): Fix racecondition that modifies in-flight sessions (#8203)
75+
- fix(node): Catch `os.uptime()` throwing because of EPERM (#8206)
76+
- fix(replay): Fix buffered replays creating replay w/o error occuring (#8168)
77+
78+
## 7.53.0
79+
80+
- feat(replay): Add `beforeAddRecordingEvent` Replay option (#8124)
81+
- feat(replay): Do not capture replays < 5 seconds (#7949)
82+
- fix(nextjs): Guard for non-absolute paths when injecting sentry config (#8151)
83+
- fix(nextjs): Import path issue on Windows (#8142)
84+
- fix(nextjs): Make `withSentryConfig` isomorphic (#8166)
85+
- fix(node): Add debug logging for node checkin (#8131)
86+
- fix(node): Add LRU map for tracePropagationTargets calculation (#8130)
87+
- fix(node): Remove new URL usage in Undici integration (#8147)
88+
- fix(replay): Show the correct Replay config option name `maskFn`
89+
- fix(sveltekit): Avoid double-wrapping load functions (#8094)
90+
- fix(tracing): Change where content-length gets added (#8139)
91+
- fix(tracing): Use integer for content length (#8152)
92+
- fix(utils): Fail silently if the provided Dsn is invalid (#8121)
93+
- ref(node): Cache undici trace propagation decisions (#8136)
94+
- ref(serverless): Remove relay extension from AWS Layer (#8080)
95+
96+
## 7.52.1
97+
98+
- feat(replay): Capture slow clicks (experimental) (#8052)
99+
100+
101+
## 7.52.0
102+
103+
### Important Next.js SDK changes:
104+
105+
This release adds support Vercel Cron Jobs in the Next.js SDK.
106+
The SDK will automatically create [Sentry Cron Monitors](https://docs.sentry.io/product/crons/) for your [Vercel Cron Jobs](https://vercel.com/docs/cron-jobs) configured via `vercel.json` when deployed on Vercel.
107+
108+
You can opt out of this functionality by setting the `automaticVercelMonitors` option to `false`:
109+
110+
```js
111+
// next.config.js
112+
const nextConfig = {
113+
sentry: {
114+
automaticVercelMonitors: false,
115+
},
116+
};
117+
```
118+
119+
(Note: Sentry Cron Monitoring is currently in beta and subject to change. Help us make it better by letting us know what you think. Respond on [GitHub](https://github.com/getsentry/sentry/discussions/42283) or write to us at [email protected])
120+
121+
- feat(nextjs): Add API method to wrap API routes with crons instrumentation (#8084)
122+
- feat(nextjs): Add automatic monitors for Vercel Cron Jobs (#8088)
123+
124+
### Other changes
125+
126+
- feat(replay): Capture keyboard presses for special characters (#8051)
127+
- fix(build): Don't mangle away global debug ID map (#8096)
128+
- fix(core): Return checkin id from client (#8116)
129+
- fix(core): Use last error for `ignoreErrors` check (#8089)
130+
- fix(docs): Change to `addTracingExtensions` was not documented in MIGRATION.md (#8101)
131+
- fix(replay): Check relative URLs correctly (#8024)
132+
- fix(tracing-internal): Avoid classifying protocol-relative URLs as same-origin urls (#8114)
133+
- ref: Hoist `createCheckinEnvelope` to core package (#8082)
134+
135+
## 7.51.2
136+
137+
- fix(nextjs): Continue traces in data fetchers when there is an already active transaction on the hub (#8073)
138+
- fix(sveltekit): Avoid creating the Sentry Vite plugin in dev mode (#8065)
139+
140+
## 7.51.1
141+
142+
- feat(replay): Add event to capture options on checkouts (#8011)
143+
- feat(replay): Improve click target detection (#8026)
144+
- fix(node): Make sure we use same ID for checkIns (#8050)
145+
- fix(replay: Keep session active on key press (#8037)
146+
- fix(replay): Move error sampling to before send (#8057)
147+
- fix(sveltekit): Wrap `load` when typed explicitly (#8049)
148+
149+
**Replay `rrweb` changes:**
150+
151+
`@sentry-internal/rrweb` was updated from 1.106.0 to 1.108.0:
152+
153+
- fix: Fix some input masking (esp for radio buttons) ([#85](https://github.com/getsentry/rrweb/pull/85))
154+
- fix: Unescaped `:` in CSS rule from Safari ([#86](https://github.com/getsentry/rrweb/pull/86))
155+
- feat: Define custom elements (web components) ([#87](https://github.com/getsentry/rrweb/pull/87))
156+
157+
Work in this release contributed by @sreetamdas. Thank you for your contribution!
158+
7159
## 7.51.0
8160

9161
### Important Changes
@@ -26,30 +178,40 @@ Note that `@sentry/angular` _does not_ support Angular 16.
26178

27179
- **feat(node): Add ability to send cron monitor check ins (#8039)**
28180

181+
**Note: This release contains a bug with generating cron monitors. We recommend you upgrade the JS SDK to 7.51.1 or above to use cron monitoring functionality**
182+
29183
This release adds [Sentry cron monitoring](https://docs.sentry.io/product/crons/) support to the Node SDK.
30184

31-
To monitor your cron jobs, send check-ins everytime you execute your cron jobs to Sentry. You can do this with the `captureCheckIn` method exported from the SDK. First you must send an `in_progress`, checkin, then you can send one with status `ok` or `error` based on what happened with your cron job.
185+
Check-in monitoring allows you to track a job's progress by completing two check-ins: one at the start of your job and another at the end of your job. This two-step process allows Sentry to notify you if your job didn't start when expected (missed) or if it exceeded its maximum runtime (failed).
32186

33187
```ts
34188
const Sentry = require('@sentry/node');
35189

36-
// ...
37-
38-
Sentry.captureCheckIn({
39-
// make sure this is the same slug as what you set up your
40-
// Sentry cron monitor with.
41-
monitorSlug: 'dailyEmail',
190+
// 🟡 Notify Sentry your job is running:
191+
const checkInId = Sentry.captureCheckIn({
192+
monitorSlug: '<monitor-slug>',
42193
status: 'in_progress',
43194
});
44195

45-
const startTime = timeInSeconds();
46-
47-
runTask();
196+
// Execute your scheduled task here...
48197

198+
// 🟢 Notify Sentry your job has completed successfully:
49199
Sentry.captureCheckIn({
50-
monitorSlug: 'dailyEmail',
200+
// make sure you pass in the checkInId generated by the first call to captureCheckIn
201+
checkInId,
202+
monitorSlug: '<monitor-slug>',
51203
status: 'ok',
52-
duration: timeInSeconds() - startTime,
204+
});
205+
```
206+
207+
If your job execution fails, you can notify Sentry about the failure:
208+
209+
```javascript
210+
// 🔴 Notify Sentry your job has failed:
211+
Sentry.captureCheckIn({
212+
checkInId,
213+
monitorSlug: '<monitor-slug>',
214+
status: 'error',
53215
});
54216
```
55217

MIGRATION.md

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

55
The `timestampWithMs` util is deprecated in favor of using `timestampInSeconds`.
66

7+
## `addTracingExtensions` replaces `addExtensionMethods` (since 7.46.0)
8+
9+
Since the deprecation of `@sentry/tracing`, tracing extensions are now added by calling `addTracingExtensions` which is
10+
exported from all framework SDKs.
11+
12+
```js
13+
// Before
14+
import * as Sentry from "@sentry/browser";
15+
import { addExtensionMethods } from "@sentry/tracing";
16+
17+
Sentry.init({
18+
dsn: '__DSN__',
19+
tracesSampleRate: 1.0,
20+
});
21+
22+
addExtensionMethods()
23+
24+
// After
25+
import * as Sentry from "@sentry/browser";
26+
27+
Sentry.init({
28+
dsn: '__DSN__',
29+
tracesSampleRate: 1.0,
30+
});
31+
32+
Sentry.addTracingExtensions();
33+
```
34+
735
## Remove requirement for `@sentry/tracing` package (since 7.46.0)
836

937
With `7.46.0` you no longer require the `@sentry/tracing` package to use tracing and performance monitoring with the Sentry JavaScript SDKs. The `@sentry/tracing` package will be removed in a future major release, but can still be used in the meantime.

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3-
"version": "7.51.0",
3+
"version": "7.54.0",
44
"npmClient": "yarn",
55
"useWorkspaces": true
66
}

packages/angular-ivy/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/angular-ivy",
3-
"version": "7.51.0",
3+
"version": "7.54.0",
44
"description": "Official Sentry SDK for Angular with full Ivy Support",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy",
@@ -21,9 +21,9 @@
2121
"rxjs": "^6.5.5 || ^7.x"
2222
},
2323
"dependencies": {
24-
"@sentry/browser": "7.51.0",
25-
"@sentry/types": "7.51.0",
26-
"@sentry/utils": "7.51.0",
24+
"@sentry/browser": "7.54.0",
25+
"@sentry/types": "7.54.0",
26+
"@sentry/utils": "7.54.0",
2727
"tslib": "^2.3.0"
2828
},
2929
"devDependencies": {

packages/angular/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sentry/angular",
3-
"version": "7.51.0",
3+
"version": "7.54.0",
44
"description": "Official Sentry SDK for Angular",
55
"repository": "git://github.com/getsentry/sentry-javascript.git",
66
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular",
@@ -21,9 +21,9 @@
2121
"rxjs": "^6.5.5 || ^7.x"
2222
},
2323
"dependencies": {
24-
"@sentry/browser": "7.51.0",
25-
"@sentry/types": "7.51.0",
26-
"@sentry/utils": "7.51.0",
24+
"@sentry/browser": "7.54.0",
25+
"@sentry/types": "7.54.0",
26+
"@sentry/utils": "7.54.0",
2727
"tslib": "^2.0.0"
2828
},
2929
"devDependencies": {

0 commit comments

Comments
 (0)