Skip to content

meta: Update Changelog for 8.26.0 #13351

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 36 commits into from
Aug 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
1c3195a
Merge pull request #13290 from getsentry/master
github-actions[bot] Aug 9, 2024
cf63845
chore(solidstart): Add solidstart sdk to the registry in .craft.yml (…
andreiborza Aug 9, 2024
2a1d8ee
feat(node): Add `fsInstrumentation` (#13291)
Aug 9, 2024
28a8237
feat(tracing): make long animation frames opt-out (#13255)
KevinL10 Aug 9, 2024
dd0501b
fix(solidstart): Remove public DSN from README (#13294)
andreiborza Aug 9, 2024
a6fda4c
feat(nextjs): export SentryBuildOptions (#13296)
MonstraG Aug 9, 2024
88fef5b
ref: Add external contributor to CHANGELOG.md (#13298)
github-actions[bot] Aug 9, 2024
a55e4d5
test: Fix node-integration-test timeouts & cleanup (#13280)
mydea Aug 12, 2024
b29d771
feat(nuxt): Always add tracing meta tags (#13273)
s1gr1d Aug 12, 2024
16996bb
fix(remix): Ensure `origin` is correctly set for remix server spans (…
mydea Aug 12, 2024
51bbf32
fix(opentelemetry): Do not overwrite http span name if kind is intern…
mydea Aug 12, 2024
38d9689
fix(astro): Only track access request headers in dynamic page request…
Lms24 Aug 12, 2024
345dd74
build: Bump node to 22.5.1 (#13118)
AbhiPrasad Aug 12, 2024
4e6c02c
feat(sveltekit): Add bundle size optimizations to plugin options (#13…
s1gr1d Aug 12, 2024
bd87457
docs: Remove alpha message for `@sentry/opentelemetry` (#13320)
mydea Aug 12, 2024
2c24a33
fix(astro): Correctly extract request data (#13315)
Lms24 Aug 12, 2024
69a5e8e
feat(browser): Add spotlightBrowser integration (#13263)
BYK Aug 12, 2024
0654dd0
feat(nuxt): Set transaction name for server error (#13292)
s1gr1d Aug 12, 2024
5aef4a0
feat(core): Add OpenTelemetry-specific `getTraceData` implementation …
Lms24 Aug 12, 2024
abc7259
feat(replay): Add a replay-specific logger (#13256)
billyvg Aug 12, 2024
6aeaf42
test(browser): Add e2e tests for the `@sentry/browser` package (#13125)
Zen-cronic Aug 13, 2024
e03df37
feat(browser): Allow sentry in safari extension background page (#13209)
undead-voron Aug 13, 2024
40a86d5
chore(ci): Adjust contribution message for multiple contributors (#13…
Lms24 Aug 13, 2024
899c571
ref: Add external contributor to CHANGELOG.md (#13334)
github-actions[bot] Aug 13, 2024
0e7c492
feat(sveltekit): Always add browserTracingIntegration (#13322)
s1gr1d Aug 13, 2024
70e1815
feat(nextjs): Always add browserTracingIntegration (#13324)
s1gr1d Aug 13, 2024
4311644
ref: Add external contributor to CHANGELOG.md (#13336)
github-actions[bot] Aug 13, 2024
5af8eb8
feat(browser): Send CLS as standalone span (experimental) (#13056)
Lms24 Aug 13, 2024
e623782
fix(nuxt): Add import line for disabled `autoImport` (#13342)
s1gr1d Aug 13, 2024
3871892
feat(nextjs): Update `experimental_captureRequestError` to reflect `R…
Aug 13, 2024
043ae7e
feat(nextjs): Always transmit trace data to the client (#13337)
Aug 13, 2024
334f869
docs(vercel-edge): Update `@sentry/vercel-edge` readme to remove alph…
Aug 13, 2024
6c0f01a
fix(ci): Bring back job skipping for PRs without code changes (#13340)
Lms24 Aug 13, 2024
fd49d0b
fix(nuxt): Add vue to excludeEsmLoaderHooks array (#13346)
s1gr1d Aug 13, 2024
3fc12c6
fix(ci): Fix incorrect `changed_any_code` check in `job_build` (#13353)
Lms24 Aug 13, 2024
2d4e4f5
meta: Update Changelog for 8.26.0
Lms24 Aug 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .craft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ targets:
onlyIfPresent: /^sentry-remix-\d.*\.tgz$/
'npm:@sentry/solid':
onlyIfPresent: /^sentry-solid-\d.*\.tgz$/
'npm:@sentry/solidstart':
onlyIfPresent: /^sentry-solidstart-\d.*\.tgz$/
'npm:@sentry/svelte':
onlyIfPresent: /^sentry-svelte-\d.*\.tgz$/
'npm:@sentry/sveltekit':
Expand Down
31 changes: 25 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ jobs:
profiling_node:
- 'packages/profiling-node/**'
- 'dev-packages/e2e-tests/test-applications/node-profiling/**'
any_code:
- '!**/*.md'


- name: Get PR labels
Expand All @@ -109,6 +111,8 @@ jobs:
is_release: ${{ startsWith(github.ref, 'refs/heads/release/') }}
changed_profiling_node: ${{ steps.changed.outputs.profiling_node == 'true' }}
changed_ci: ${{ steps.changed.outputs.workflow == 'true' }}
changed_any_code: ${{ steps.changed.outputs.any_code == 'true' }}

# When merging into master, or from master
is_gitflow_sync: ${{ github.head_ref == 'master' || github.ref == 'refs/heads/master' }}
has_gitflow_label:
Expand All @@ -123,6 +127,7 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 15
if: |
needs.job_get_metadata.outputs.changed_any_code == 'true' &&
(needs.job_get_metadata.outputs.is_gitflow_sync == 'false' && needs.job_get_metadata.outputs.has_gitflow_label == 'false')
steps:
- name: Check out base commit (${{ github.event.pull_request.base.sha }})
Expand Down Expand Up @@ -274,24 +279,37 @@ jobs:

job_check_format:
name: Check file formatting
needs: [job_get_metadata, job_build]
needs: [job_get_metadata]
timeout-minutes: 10
runs-on: ubuntu-20.04
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v4
with:
ref: ${{ env.HEAD_COMMIT }}

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version-file: 'package.json'

# we use a hash of yarn.lock as our cache key, because if it hasn't changed, our dependencies haven't changed,
# so no need to reinstall them
- name: Compute dependency cache key
id: compute_lockfile_hash
run: echo "hash=${{ hashFiles('yarn.lock', '**/package.json') }}" >> "$GITHUB_OUTPUT"

- name: Check dependency cache
uses: actions/cache/restore@v4
uses: actions/cache@v4
id: cache_dependencies
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ needs.job_build.outputs.dependency_cache_key }}
fail-on-cache-miss: true
key: ${{ steps.compute_lockfile_hash.outputs.hash }}

- name: Install dependencies
if: steps.cache_dependencies.outputs.cache-hit != 'true'
run: yarn install --ignore-engines --frozen-lockfile

- name: Check file formatting
run: yarn lint:prettier && yarn lint:biome

Expand Down Expand Up @@ -818,10 +836,10 @@ jobs:
pattern: profiling-node-binaries-${{ github.sha }}-*
path: ${{ github.workspace }}/packages/profiling-node/lib/
merge-multiple: true
# End rebuild profiling

- name: Build Profiling tarball
- name: Build tarballs
run: yarn build:tarball
# End rebuild profiling

- name: Stores tarballs in cache
uses: actions/cache/save@v4
Expand Down Expand Up @@ -867,6 +885,7 @@ jobs:
'create-remix-app-express',
'create-remix-app-express-legacy',
'create-remix-app-express-vite-dev',
'default-browser',
'node-express-esm-loader',
'node-express-esm-preload',
'node-express-esm-without-loader',
Expand Down
8 changes: 4 additions & 4 deletions .size-limit.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ module.exports = [
path: 'packages/browser/build/npm/esm/index.js',
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'feedbackIntegration'),
gzip: true,
limit: '90 KB',
limit: '91 KB',
},
{
name: '@sentry/browser (incl. Tracing, Replay, Feedback, metrics)',
Expand Down Expand Up @@ -143,7 +143,7 @@ module.exports = [
name: 'CDN Bundle (incl. Tracing)',
path: createCDNPath('bundle.tracing.min.js'),
gzip: true,
limit: '37 KB',
limit: '38 KB',
},
{
name: 'CDN Bundle (incl. Tracing, Replay)',
Expand All @@ -170,7 +170,7 @@ module.exports = [
path: createCDNPath('bundle.tracing.min.js'),
gzip: false,
brotli: false,
limit: '110 KB',
limit: '111 KB',
},
{
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
Expand All @@ -193,7 +193,7 @@ module.exports = [
import: createImport('init'),
ignore: ['next/router', 'next/constants'],
gzip: true,
limit: '38 KB',
limit: '39 KB',
},
// SvelteKit SDK (ESM)
{
Expand Down
5 changes: 3 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,11 @@
],
"deno.enablePaths": ["packages/deno/test"],
"editor.codeActionsOnSave": {
"source.organizeImports.biome": "explicit",
"source.organizeImports.biome": "explicit"
},
"editor.defaultFormatter": "biomejs.biome",
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
}
},
"cSpell.words": ["arrayify"]
}
54 changes: 54 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,60 @@

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

## 8.26.0

### Important Changes

- **feat(node): Add `fsInstrumentation` (#13291)**

This release adds `fsIntegration`, an integration that instruments the `fs` API to the Sentry Node SDK. The
integration creates spans with naming patterns of `fs.readFile`, `fs.unlink`, and so on.

This integration is not enabled by default and needs to be registered in your `Sentry.init` call. You can configure
via options whether to include path arguments or error messages as span attributes when an fs call fails:

```js
Sentry.init({
integrations: [
Sentry.fsIntegration({
recordFilePaths: true,
recordErrorMessagesAsSpanAttributes: true,
}),
],
});
```

**WARNING:** This integration may add significant overhead to your application. Especially in scenarios with a lot of
file I/O, like for example when running a framework dev server, including this integration can massively slow down
your application.

### Other Changes

- feat(browser): Add spotlightBrowser integration (#13263)
- feat(browser): Allow sentry in safari extension background page (#13209)
- feat(browser): Send CLS as standalone span (experimental) (#13056)
- feat(core): Add OpenTelemetry-specific `getTraceData` implementation (#13281)
- feat(nextjs): Always add `browserTracingIntegration` (#13324)
- feat(nextjs): Always transmit trace data to the client (#13337)
- feat(nextjs): export SentryBuildOptions (#13296)
- feat(nextjs): Update `experimental_captureRequestError` to reflect `RequestInfo.path` change in Next.js canary
(#13344)

- feat(nuxt): Always add tracing meta tags (#13273)
- feat(nuxt): Set transaction name for server error (#13292)
- feat(replay): Add a replay-specific logger (#13256)
- feat(sveltekit): Add bundle size optimizations to plugin options (#13318)
- feat(sveltekit): Always add browserTracingIntegration (#13322)
- feat(tracing): Make long animation frames opt-out (#13255)
- fix(astro): Correctly extract request data (#13315)
- fix(astro): Only track access request headers in dynamic page requests (#13306)
- fix(nuxt): Add import line for disabled `autoImport` (#13342)
- fix(nuxt): Add vue to excludeEsmLoaderHooks array (#13346)
- fix(opentelemetry): Do not overwrite http span name if kind is internal (#13282)
- fix(remix): Ensure `origin` is correctly set for remix server spans (#13305)

Work in this release was contributed by @MonstraG, @undead-voron and @Zen-cronic. Thank you for your contributions!

## 8.25.0

### Important Changes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,11 @@ sentryTest('should capture interaction transaction. @firefox', async ({ browserN
expect(eventData.contexts).toMatchObject({ trace: { op: 'ui.action.click' } });
expect(eventData.platform).toBe('javascript');
expect(eventData.type).toBe('transaction');
expect(eventData.spans).toHaveLength(1);

const interactionSpan = eventData.spans![0];
const spans = eventData.spans?.filter(span => !span.op?.startsWith('ui.long-animation-frame'));
expect(spans).toHaveLength(1);

const interactionSpan = spans![0];
expect(interactionSpan.op).toBe('ui.interaction.click');
expect(interactionSpan.description).toBe('body > button.clicked');
expect(interactionSpan.timestamp).toBeDefined();
Expand Down Expand Up @@ -63,7 +65,8 @@ sentryTest(
await page.waitForTimeout(1000);
await page.locator('[data-test-id=interaction-button]').click();
const envelope = await envelopePromise;
expect(envelope[0].spans).toHaveLength(1);
const spans = envelope[0].spans?.filter(span => !span.op?.startsWith('ui.long-animation-frame'));
expect(spans).toHaveLength(1);
}
},
);
Expand All @@ -89,10 +92,10 @@ sentryTest(
const envelopes = await envelopePromise;
expect(envelopes).toHaveLength(1);
const eventData = envelopes[0];
const spans = eventData.spans?.filter(span => !span.op?.startsWith('ui.long-animation-frame'));
expect(spans).toHaveLength(1);

expect(eventData.spans).toHaveLength(1);

const interactionSpan = eventData.spans![0];
const interactionSpan = spans![0];
expect(interactionSpan.op).toBe('ui.interaction.click');
expect(interactionSpan.description).toBe('body > AnnotatedButton');
},
Expand Down Expand Up @@ -120,9 +123,10 @@ sentryTest(
expect(envelopes).toHaveLength(1);

const eventData = envelopes[0];
expect(eventData.spans).toHaveLength(1);
const spans = eventData.spans?.filter(span => !span.op?.startsWith('ui.long-animation-frame'));
expect(spans).toHaveLength(1);

const interactionSpan = eventData.spans![0];
const interactionSpan = spans![0];
expect(interactionSpan.op).toBe('ui.interaction.click');
expect(interactionSpan.description).toBe('body > StyledButton');
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ window.Sentry = Sentry;

Sentry.init({
dsn: 'https://[email protected]/1337',
integrations: [Sentry.browserTracingIntegration({ enableLongTask: false, idleTimeout: 9000 })],
integrations: [
Sentry.browserTracingIntegration({ enableLongTask: false, enableLongAnimationFrame: false, idleTimeout: 9000 }),
],
tracesSampleRate: 1,
});
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Sentry.init({
integrations: [
Sentry.browserTracingIntegration({
idleTimeout: 9000,
enableLongAnimationFrame: false,
}),
],
tracesSampleRate: 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import * as Sentry from '@sentry/browser';

window.Sentry = Sentry;

Sentry.init({
dsn: 'https://[email protected]/1337',
integrations: [
Sentry.browserTracingIntegration({
idleTimeout: 9000,
_experiments: {
enableStandaloneClsSpans: true,
},
}),
],
tracesSampleRate: 1,
debug: true,
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { simulateCLS } from '../../../../utils/web-vitals/cls.ts';

// Simulate Layout shift right at the beginning of the page load, depending on the URL hash
// don't run if expected CLS is NaN
const expectedCLS = Number(location.hash.slice(1));
if (expectedCLS && expectedCLS >= 0) {
simulateCLS(expectedCLS).then(() => window.dispatchEvent(new Event('cls-done')));
}

// Simulate layout shift whenever the trigger-cls event is dispatched
// Cannot trigger cia a button click because expected layout shift after
// an interaction doesn't contribute to CLS.
window.addEventListener('trigger-cls', () => {
simulateCLS(0.1).then(() => {
window.dispatchEvent(new Event('cls-done'));
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<div id="content"></div>
<p>
Some content
</p>
</body>
</html>
Loading
Loading