sentry-javascript icon indicating copy to clipboard operation
sentry-javascript copied to clipboard

fix(svelte): Make component tracking compatible with Svelte 5

Open Lms24 opened this issue 1 year ago • 2 comments

depends on #10311

This PR adds compatibility for Svelte 5 by adjusting our component tracking functionality to work with Svelte 5.

TLDR: This change entails a minor behaviour "breaking" change for a subset of Svelte component tracking users.

Our previous implementation relied on an exported internal API (current_component) to automatically detect the name of the component name for the respective spans. This API was removed in Svelte 5, so we can no longer use it. Importing it causes a build error. This means that going forward, calls to trackComponent need to set the componentName option or the span will get the fallback <Svelte Component> name. However, this only applies if the function is called manually.

In case users use our withSentryConfig wrapper in their svelte.config.js, we inject a preprocessor that already creates passes the component name from the component file name to the injected trackComponent call. So nothing changes in this use case - component spans will still automatically get the correct name. We recommend this approach in our docs.

ref #10275

Lms24 avatar Jan 24 '24 10:01 Lms24

in addition blocked on jest (#10318) - moving to draft

Lms24 avatar Jan 24 '24 13:01 Lms24

@Lms24 anymore progress on this?

JonathonRP avatar Feb 16 '24 19:02 JonathonRP

Bundle Report

Changes will decrease total bundle size by 3.37MB :arrow_down:

Bundle name Size Change
@sentry/svelte-cjs 13.75kB 92 bytes :arrow_down:
@sentry/svelte-esm 12.63kB 91 bytes :arrow_down:
@sentry/sveltekit-cjs 69.31kB 0 bytes
@sentry/sveltekit-esm 61.08kB 0 bytes
@sentry/types-cjs (removed) 35 bytes :arrow_down:
@sentry/utils-cjs (removed) 178.63kB :arrow_down:
@sentry/opentelemetry-esm (removed) 69.19kB :arrow_down:
@sentry-internal/tracing-esm (removed) 107.26kB :arrow_down:
@sentry/utils-esm (removed) 174.02kB :arrow_down:
@sentry/types-esm (removed) 35 bytes :arrow_down:
@sentry-internal/integration-shims-cjs (removed) 3.65kB :arrow_down:
@sentry/node-esm (removed) 333.56kB :arrow_down:
@sentry/core-cjs (removed) 240.44kB :arrow_down:
@sentry-internal/replay-esm (removed) 306.46kB :arrow_down:
@sentry/node-cjs (removed) 336.97kB :arrow_down:
@sentry-internal/replay-canvas-cjs (removed) 29.51kB :arrow_down:
@sentry/bun-cjs (removed) 13.5kB :arrow_down:
@sentry/core-esm (removed) 236.82kB :arrow_down:
@sentry/browser-cjs (removed) 107.36kB :arrow_down:
@sentry/vercel-edge-cjs (removed) 18.23kB :arrow_down:
@sentry/aws-serverless-cjs (removed) 14.62kB :arrow_down:
@sentry-internal/node-integration-tests-cjs (removed) 1.04kB :arrow_down:
@sentry/wasm-cjs (removed) 5.2kB :arrow_down:
@sentry/gatsby-cjs (removed) 905 bytes :arrow_down:
@sentry/vue-esm (removed) 18.85kB :arrow_down:
@sentry/gatsby-esm (removed) 385 bytes :arrow_down:
@sentry-internal/replay-cjs (removed) 306.35kB :arrow_down:
@sentry/remix-cjs (removed) 53.62kB :arrow_down:
@sentry/nextjs-cjs (removed) 20.52kB :arrow_down:
@sentry/browser-esm (removed) 104.53kB :arrow_down:
@sentry/google-cloud-serverless-cjs (removed) 23.0kB :arrow_down:
@sentry-internal/integration-shims-esm (removed) 2.99kB :arrow_down:
@sentry/nextjs-esm (removed) 20.02kB :arrow_down:
@sentry/remix-esm (removed) 48.23kB :arrow_down:
@sentry-internal/node-integration-tests-esm (removed) 888 bytes :arrow_down:
@sentry/bun-esm (removed) 10.05kB :arrow_down:
@sentry-internal/feedback-cjs (removed) 65.81kB :arrow_down:
@sentry-internal/replay-canvas-esm (removed) 29.43kB :arrow_down:
@sentry/google-cloud-serverless-esm (removed) 19.16kB :arrow_down:
@sentry/profiling-node-cjs (removed) 25.5kB :arrow_down:
@sentry/vercel-edge-esm (removed) 16.13kB :arrow_down:
@sentry/wasm-esm (removed) 4.85kB :arrow_down:
@sentry/opentelemetry-cjs (removed) 70.22kB :arrow_down:
@sentry/profiling-node-esm (removed) 25.52kB :arrow_down:
@sentry/react-cjs (removed) 45.04kB :arrow_down:
@sentry-internal/tracing-cjs (removed) 108.01kB :arrow_down:
@sentry-internal/feedback-esm (removed) 65.5kB :arrow_down:
@sentry/astro-cjs (removed) 27.13kB :arrow_down:
@sentry/vue-cjs (removed) 20.19kB :arrow_down:
@sentry/astro-esm (removed) 23.39kB :arrow_down:
@sentry/react-esm (removed) 41.18kB :arrow_down:

codecov[bot] avatar Apr 02 '24 13:04 codecov[bot]

size-limit report 📦

Path Size
@sentry/browser (incl. Tracing, Replay, Feedback) 80.38 KB (added)
@sentry/browser (incl. Tracing, Replay) 71.73 KB (added)
@sentry/browser (incl. Tracing, Replay with Canvas) 75.55 KB (added)
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 65.3 KB (added)
@sentry/browser (incl. Tracing) 36.57 KB (added)
@sentry/browser (incl. browserTracingIntegration) 36.57 KB (added)
@sentry/browser (incl. feedbackIntegration) 31.53 KB (added)
@sentry/browser (incl. feedbackModalIntegration) 31.63 KB (added)
@sentry/browser (incl. feedbackScreenshotIntegration) 31.64 KB (added)
@sentry/browser (incl. sendFeedback) 27.59 KB (added)
@sentry/browser 22.75 KB (added)
CDN Bundle (incl. Tracing, Replay, Feedback) 74.93 KB (added)
CDN Bundle (incl. Tracing, Replay) 69.72 KB (added)
CDN Bundle (incl. Tracing) 36.26 KB (added)
CDN Bundle 24.01 KB (added)
CDN Bundle (incl. Tracing, Replay) - uncompressed 218.82 KB (added)
CDN Bundle (incl. Tracing) - uncompressed 109.47 KB (added)
CDN Bundle - uncompressed 71.09 KB (added)
@sentry/react (incl. Tracing, Replay) 71.71 KB (added)
@sentry/react 22.78 KB (added)

github-actions[bot] avatar Apr 02 '24 14:04 github-actions[bot]

Superseded by #11807

Lms24 avatar Apr 26 '24 10:04 Lms24