Skip to content

Commit 5fa1515

Browse files
authored
Merge pull request #9272 from getsentry/prepare-release/7.74.1
meta: Update CHANGELOG for 7.74.1
2 parents 05cba8f + 16e1af1 commit 5fa1515

File tree

64 files changed

+1386
-313
lines changed

Some content is hidden

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

64 files changed

+1386
-313
lines changed

.craft.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ targets:
167167
onlyIfPresent: /^sentry-angular-ivy-\d.*\.tgz$/
168168
'npm:@sentry/angular':
169169
onlyIfPresent: /^sentry-angular-\d.*\.tgz$/
170+
'npm:@sentry/astro':
171+
onlyIfPresent: /^sentry-astro-\d.*\.tgz$/
170172
'npm:@sentry/wasm':
171173
onlyIfPresent: /^sentry-wasm-\d.*\.tgz$/
172174
'npm:@sentry/nextjs':

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ body:
3030
If you're using the CDN bundles, please specify the exact bundle (e.g. `bundle.tracing.min.js`) in your SDK
3131
setup.
3232
options:
33+
- '@sentry/astro'
3334
- '@sentry/browser'
3435
- '@sentry/angular'
3536
- '@sentry/angular-ivy'

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,7 @@ jobs:
848848
'create-next-app',
849849
'create-remix-app',
850850
'create-remix-app-v2',
851+
'debug-id-sourcemaps',
851852
'nextjs-app-dir',
852853
'react-create-hash-router',
853854
'react-router-6-use-routes',

.github/workflows/issue-package-label.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ jobs:
2929
# Note: Since this is handled as a regex, and JSON parse wrangles slashes /, we just use `.` instead
3030
map: |
3131
{
32+
"@sentry.astro": {
33+
"label": "Package: Astro"
34+
},
3235
"@sentry.browser": {
3336
"label": "Package: Browser"
3437
},

.size-limit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module.exports = [
2727
name: '@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)',
2828
path: 'packages/browser/build/bundles/bundle.tracing.replay.min.js',
2929
gzip: true,
30-
limit: '80 KB',
30+
limit: '90 KB',
3131
},
3232
{
3333
name: '@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)',

CHANGELOG.md

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

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

7+
## 7.74.1
8+
9+
- chore(astro): Add `astro-integration` keyword (#9265)
10+
- fix(core): Narrow filters for health check transactions (#9257)
11+
- fix(nextjs): Fix HMR by inserting new entrypoints at the end (#9267)
12+
- fix(nextjs): Fix resolution of request async storage module (#9259)
13+
- fix(node-experimental): Guard against missing `fetch` (#9275)
14+
- fix(remix): Update `defer` injection logic. (#9242)
15+
- fix(tracing-internal): Parameterize express middleware parameters (#8668)
16+
- fix(utils): Move Node specific ANR impl. out of utils (#9258)
17+
18+
Work in this release contributed by @LubomirIgonda1. Thank you for your contribution!
19+
720
## 7.74.0
821

922
### Important Changes

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@ For each major JavaScript platform, there is a specific high-level SDK that prov
3939
package. Please refer to the README and instructions of those SDKs for more detailed information:
4040

4141
- [`@sentry/browser`](https://github.com/getsentry/sentry-javascript/tree/master/packages/browser): SDK for Browsers
42+
- [`@sentry/bun`](https://github.com/getsentry/sentry-javascript/tree/master/packages/bun): SDK for Bun
4243
- [`@sentry/node`](https://github.com/getsentry/sentry-javascript/tree/master/packages/node): SDK for Node including
4344
integrations for Express
4445
- [`@sentry/angular`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular): Browser SDK for Angular
4546
- [`@sentry/angular-ivy`](https://github.com/getsentry/sentry-javascript/tree/master/packages/angular-ivy): Browser SDK for
4647
Angular with native support for Angular's Ivy rendering engine.
48+
- [`@sentry/astro`](https://github.com/getsentry/sentry-javascript/tree/master/packages/astro): SDK for Astro
4749
- [`@sentry/ember`](https://github.com/getsentry/sentry-javascript/tree/master/packages/ember): Browser SDK for Ember
4850
- [`@sentry/react`](https://github.com/getsentry/sentry-javascript/tree/master/packages/react): Browser SDK for React
4951
- [`@sentry/svelte`](https://github.com/getsentry/sentry-javascript/tree/master/packages/svelte): Browser SDK for Svelte

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"packages/ember",
5151
"packages/eslint-config-sdk",
5252
"packages/eslint-plugin-sdk",
53+
"packages/feedback",
5354
"packages/gatsby",
5455
"packages/hub",
5556
"packages/integrations",
@@ -82,7 +83,7 @@
8283
"@rollup/plugin-replace": "^3.0.1",
8384
"@rollup/plugin-sucrase": "^4.0.3",
8485
"@rollup/plugin-typescript": "^8.3.1",
85-
"@size-limit/preset-small-lib": "^4.5.5",
86+
"@size-limit/preset-small-lib": "~9.0.0",
8687
"@strictsoftware/typedoc-plugin-monorepo": "^0.3.1",
8788
"@types/chai": "^4.1.3",
8889
"@types/jest": "^27.4.1",
@@ -118,7 +119,7 @@
118119
"rollup-plugin-license": "^2.6.1",
119120
"rollup-plugin-terser": "^7.0.2",
120121
"sinon": "^7.3.2",
121-
"size-limit": "^4.5.5",
122+
"size-limit": "~9.0.0",
122123
"ts-jest": "^27.1.4",
123124
"ts-node": "10.9.1",
124125
"tslib": "2.4.1",

packages/astro/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"keywords": [
88
"withastro",
99
"astro-component",
10+
"astro-integration",
1011
"sentry",
1112
"apm"
1213
],

packages/core/src/integrations/inboundfilters.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import { getEventDescription, logger, stringMatchesSomePattern } from '@sentry/u
66
const DEFAULT_IGNORE_ERRORS = [/^Script error\.?$/, /^Javascript error: Script error\.? on line 0$/];
77

88
const DEFAULT_IGNORE_TRANSACTIONS = [
9-
/^.*healthcheck.*$/,
10-
/^.*healthy.*$/,
11-
/^.*live.*$/,
12-
/^.*ready.*$/,
13-
/^.*heartbeat.*$/,
9+
/^.*\/healthcheck$/,
10+
/^.*\/healthy$/,
11+
/^.*\/live$/,
12+
/^.*\/ready$/,
13+
/^.*\/heartbeat$/,
1414
/^.*\/health$/,
1515
/^.*\/healthz$/,
1616
];

packages/core/test/lib/integrations/inboundfilters.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,18 @@ describe('InboundFilters', () => {
428428
expect(eventProcessor(TRANSACTION_EVENT_HEALTH_2, {})).toBe(TRANSACTION_EVENT_HEALTH_2);
429429
expect(eventProcessor(TRANSACTION_EVENT_HEALTH_3, {})).toBe(TRANSACTION_EVENT_HEALTH_3);
430430
});
431+
432+
it.each(['/delivery', '/already', '/healthysnacks'])(
433+
"doesn't filter out transactions that have similar names to health check ones (%s)",
434+
transaction => {
435+
const eventProcessor = createInboundFiltersEventProcessor();
436+
const evt: Event = {
437+
transaction,
438+
type: 'transaction',
439+
};
440+
expect(eventProcessor(evt, {})).toBe(evt);
441+
},
442+
);
431443
});
432444

433445
describe('denyUrls/allowUrls', () => {

packages/deno/rollup.config.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
// @ts-check
12
import nodeResolve from '@rollup/plugin-node-resolve';
23
import commonjs from '@rollup/plugin-commonjs';
34
import sucrase from '@rollup/plugin-sucrase';
5+
import { defineConfig } from 'rollup';
46

5-
export default {
7+
export default defineConfig({
68
input: ['src/index.ts'],
9+
treeshake: 'smallest',
710
output: {
811
dir: 'build',
912
sourcemap: true,
@@ -21,4 +24,4 @@ export default {
2124
commonjs(),
2225
sucrase({ transforms: ['typescript'] }),
2326
],
24-
};
27+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dist
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@sentry:registry=http://localhost:4873
2+
@sentry-internal:registry=http://localhost:4873
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "debug-id-sourcemaps",
3+
"version": "1.0.0",
4+
"private": true,
5+
"scripts": {
6+
"build": "rollup --config rollup.config.mjs",
7+
"test": "vitest run",
8+
"clean": "npx rimraf node_modules,pnpm-lock.yaml",
9+
"test:build": "pnpm install && pnpm build",
10+
"test:assert": "pnpm test"
11+
},
12+
"dependencies": {
13+
"@sentry/node": "latest || *"
14+
},
15+
"devDependencies": {
16+
"rollup": "^4.0.2",
17+
"vitest": "^0.34.6",
18+
"@sentry/rollup-plugin": "2.8.0"
19+
},
20+
"volta": {
21+
"extends": "../../package.json"
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { defineConfig } from 'rollup';
2+
import { sentryRollupPlugin } from '@sentry/rollup-plugin';
3+
4+
export default defineConfig({
5+
input: './src/app.js',
6+
external: ['@sentry/node'],
7+
plugins: [
8+
sentryRollupPlugin({
9+
org: process.env.E2E_TEST_SENTRY_ORG_SLUG,
10+
project: process.env.E2E_TEST_SENTRY_TEST_PROJECT,
11+
authToken: process.env.E2E_TEST_AUTH_TOKEN,
12+
}),
13+
],
14+
output: {
15+
file: './dist/app.js',
16+
compact: true,
17+
format: 'cjs',
18+
sourcemap: 'hidden',
19+
},
20+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as Sentry from '@sentry/node';
2+
3+
Sentry.init({
4+
environment: 'qa', // dynamic sampling bias to keep transactions
5+
dsn: process.env.E2E_TEST_DSN,
6+
});
7+
8+
const eventId = Sentry.captureException(new Error('Sentry Debug ID E2E Test Error'));
9+
10+
process.stdout.write(eventId);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2+
3+
exports[`Find symbolicated event on sentry 1`] = `
4+
{
5+
"colno": 41,
6+
"contextLine": "const eventId = Sentry.captureException(new Error('Sentry Debug ID E2E Test Error'));",
7+
"lineno": 8,
8+
"postContext": [
9+
"",
10+
"process.stdout.write(eventId);",
11+
],
12+
"preContext": [
13+
"Sentry.init({",
14+
" environment: 'qa', // dynamic sampling bias to keep transactions",
15+
" dsn: process.env.E2E_TEST_DSN,",
16+
"});",
17+
"",
18+
],
19+
}
20+
`;
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { test } from 'vitest';
2+
import childProcess from 'child_process';
3+
import path from 'path';
4+
5+
const authToken = process.env.E2E_TEST_AUTH_TOKEN;
6+
const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG;
7+
const sentryTestProject = process.env.E2E_TEST_SENTRY_TEST_PROJECT;
8+
const EVENT_POLLING_TIMEOUT = 30_000;
9+
10+
test(
11+
'Find symbolicated event on sentry',
12+
async ({ expect }) => {
13+
const eventId = childProcess.execSync(`node ${path.join(__dirname, '..', 'dist', 'app.js')}`, {
14+
encoding: 'utf-8',
15+
});
16+
17+
console.log(`Polling for error eventId: ${eventId}`);
18+
19+
let timedOut = false;
20+
setTimeout(() => {
21+
timedOut = true;
22+
}, EVENT_POLLING_TIMEOUT);
23+
24+
while (!timedOut) {
25+
await new Promise(resolve => setTimeout(resolve, 2000)); // poll every two seconds
26+
const response = await fetch(
27+
`https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${eventId}/json/`,
28+
{ headers: { Authorization: `Bearer ${authToken}` } },
29+
);
30+
31+
// Only allow ok responses or 404
32+
if (!response.ok) {
33+
expect(response.status).toBe(404);
34+
continue;
35+
}
36+
37+
const eventPayload = await response.json();
38+
const frames = eventPayload.exception?.values?.[0]?.stacktrace?.frames;
39+
const topFrame = frames[frames.length - 1];
40+
expect({
41+
preContext: topFrame?.pre_context,
42+
contextLine: topFrame?.context_line,
43+
postContext: topFrame?.post_context,
44+
lineno: topFrame?.lineno,
45+
colno: topFrame?.colno,
46+
}).toMatchSnapshot();
47+
return;
48+
}
49+
50+
throw new Error('Test timed out');
51+
},
52+
{ timeout: EVENT_POLLING_TIMEOUT },
53+
);

packages/feedback/.eslintignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
build/

packages/feedback/.eslintrc.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Note: All paths are relative to the directory in which eslint is being run, rather than the directory where this file
2+
// lives
3+
4+
// ESLint config docs: https://eslint.org/docs/user-guide/configuring/
5+
6+
module.exports = {
7+
extends: ['../../.eslintrc.js'],
8+
overrides: [
9+
{
10+
files: ['jest.setup.ts', 'jest.config.ts'],
11+
parserOptions: {
12+
project: ['tsconfig.test.json'],
13+
},
14+
rules: {
15+
'no-console': 'off',
16+
},
17+
},
18+
{
19+
files: ['test/**/*.ts'],
20+
21+
rules: {
22+
// most of these errors come from `new Promise(process.nextTick)`
23+
'@typescript-eslint/unbound-method': 'off',
24+
// TODO: decide if we want to enable this again after the migration
25+
// We can take the freedom to be a bit more lenient with tests
26+
'@typescript-eslint/no-floating-promises': 'off',
27+
},
28+
},
29+
{
30+
files: ['src/types/deprecated.ts'],
31+
rules: {
32+
'@typescript-eslint/naming-convention': 'off',
33+
},
34+
},
35+
],
36+
};

packages/feedback/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
/*.tgz
3+
.eslintcache
4+
build

packages/feedback/LICENSE

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Copyright (c) 2023 Sentry (https://sentry.io) and individual contributors. All rights reserved.
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
4+
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
5+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
6+
persons to whom the Software is furnished to do so, subject to the following conditions:
7+
8+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
9+
Software.
10+
11+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
12+
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
13+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
14+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

0 commit comments

Comments
 (0)