Skip to content

meta(changelog): Update changelog for 9.12.0 #16008

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 27 commits into from
Apr 8, 2025
Merged

Conversation

AbhiPrasad
Copy link
Member

Fixed a billion log bugs, let's get it out!

onurtemizkan and others added 25 commits April 3, 2025 12:56
)

Completes #15950 with the rest of the `@remix-run/*` dependencies.
[Gitflow] Merge master into develop
- set the `debug` option by reading `options.debug ??
process.env.SENTRY_DEBUG`
- add unit test for a bunch of supported env variables
…shots (#15951)

| Editing | In Sentry |
| --- | --- |
| <img width="1408" alt="SCR-20250402-pfuj"
src="https://github.com/user-attachments/assets/896a1efe-74ac-42ca-8f51-b7024dee768c"
/> | <img width="1421" alt="SCR-20250402-pgft"
src="https://github.com/user-attachments/assets/37337f95-9e4d-477f-935b-2545466bc455"
/>

I should write that there are like 3 separate systems inside the
`ScreenshotEditor` component, all working with the same data and helpers
really, but each easy to spot and understand on their own.
The end-goal is to have the correct thing rendered into `outputBuffer`
(which is an argument to the component, but it's used for outputting
data) and also render into the `foreground` and `background`.

1. The first is the `useLayoutEffect` and `useEffect` calls. These
basically depend on the `screenshot` prop & `drawCommands` state. When
those change we're basically re-sizing and re-rendering into our
canvases.
2. The second system is all the stuff inside of `handleMouseDown`. We
call `getBoundingClientRect` and use offsetX/offsetY for a consistent
frame if reference when doing mouse coordinates. From in here we don't
update any react state until onMouseUp happens, so the re-rendering
onMouseMove is really fast to execute, and really easy to understand.
3. The last system to look at is is the `drawCommands` stuff and
`scaleFactor`. All the drawCommands in state/memory are using an x/y
coordinate system based on the size of the original screenshot. So when
we call paintForeground it's really easy. But when we want to add
`<div>` elements to the page we have to scale the sizes. This helps with
window resize, and helps to consolidate when/where we convert from one
x/y coordinate system to another.

The resulting feedbacks are in the correct dpi, and have boxes draw
using the same DPI.
| Case | Img |
| --- | --- |
| No boxes drawn ever | <img width="485" alt="SCR-20250402-jidz"
src="https://github.com/user-attachments/assets/3f5d177a-4652-40c1-be89-bfa2ff4f7399"
/> |
| Drew some, then removed them | <img width="452"
alt="SCR-20250402-jifp"
src="https://github.com/user-attachments/assets/c24fc144-d0f1-4b64-af6c-199eff0a3fee"
/> |
| Some boxes | <img width="452" alt="SCR-20250402-jigm"
src="https://github.com/user-attachments/assets/a3af82b1-16a8-4a78-bac4-5d83f687a59f"
/> |


Related to #15424
Iteration on top of
develop...ryan953/feedback-highlight-mask-ref
Fixes getsentry/sentry#69786

---------

Co-authored-by: Billy Vong <billyvg@users.noreply.github.com>
Improving tests for
#15859

- added `it.each` instead of looping with `foreach`
- added tests for console output
With the addition on `instrumentation-client.ts` the likelihood of
`Sentry.init()` rose starkly so I figured it might be worth printing a
warning.

Resolves getsentry/sentry-wizard#930
…15974)

#15972 added support for the `SENTRY_DEBUG` env variable. This patch
follows up with emitting debug logs in the minified SDK bundle we ship in 
our lambda layer.
…ion` (#15959)

Allow ignoring the request body for certain requests, which is
very useful in situations of long-running requests with large/streaming
request bodies which can result in a lot of memory usage

---------

Co-authored-by: Lukas Stracke <lukas.stracke@sentry.io>
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #15959

Co-authored-by: Lms24 <8420481+Lms24@users.noreply.github.com>
…ration (#15979)

This PR adds a hook to the browser tracing integration that allows to
hook into the creation of request spans (fetch & xhr) and set attributes
based on headers (can be extended with additional info in the future).

Primarily I was gonna use this to set an attribute/op on prefetch client
requests in Next.js to show them as `http.client.prefetch`.

---------

Co-authored-by: Lukas Stracke <lukas.stracke@sentry.io>
…st.prefetch: true` attribute (#15980)

Adds a `http.request.prefetch: true` attribute to Next.js clientside
requests if they're prefetching other pages.

---------

Co-authored-by: Lukas Stracke <lukas.stracke@sentry.io>
…avigations (#15981)

We relied on Next.js internals for navigation spans and that inevitably
broke so Next.js added a `onRouterTransitionStart` hook in
`instrumentation-client.ts`
(vercel/next.js#77791) for us to use.

This PR exposes a handler called `captureRouterTransitionStart` for that
hook so that we can actually instrument navigations again.
Astro components are rendered in a stream, so if a component that is not
the page fails during a request, this error is not thrown by the `await
next()` call, only when the component is reached in the response stream.

The code was iterating over the response stream assuming it was
infallible, so component errors were being ignored by sentry and hidden
from the user. This PR wraps the iteration on a `try/catch` pair to
report the error and forward it along to the error handling pipeline.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #15995

Co-authored-by: AbhiPrasad <18689448+AbhiPrasad@users.noreply.github.com>
resolves https://linear.app/getsentry/issue/LOGS-18

We got some user feedback that nodejs logging was too inconsistent. This
PR improves that.

1. Add a new `flushLogs` client hook that allows us to reset server
weight tracking logic more consistently. This also fixes a bug where we
didn't reset weight tracking when calling `Sentry.flush`.
2. Add a `process.on('beforeExit'` listener to flush logs. Hooking onto
`beforeExit` does not guarantee we flush all logs before exit, but it
does increase the chances we do.
4. Add an idle timeout that will flush logs after 5 seconds if no new
logs are recorded. This should not leak memory because it is not an
interval, but instead a timeout.
`server.address` is the equivalent to `server_name` we attach to errors
and transactions. See the spec for the attribute here:
https://getsentry.github.io/sentry-conventions/generated/attributes/server.html#serveraddress

resolves https://linear.app/getsentry/issue/LOGS-32
@AbhiPrasad AbhiPrasad requested a review from a team April 8, 2025 10:29
@AbhiPrasad AbhiPrasad self-assigned this Apr 8, 2025
@AbhiPrasad AbhiPrasad requested review from mydea and andreiborza and removed request for a team April 8, 2025 10:29
@AbhiPrasad
Copy link
Member Author

will rebase when #16009 gets merged in and then we can cut the release

@AbhiPrasad AbhiPrasad changed the base branch from develop to master April 8, 2025 10:33
@AbhiPrasad AbhiPrasad requested a review from a team as a code owner April 8, 2025 10:33
lforst and others added 2 commits April 8, 2025 13:12
@AbhiPrasad AbhiPrasad force-pushed the prepare-release/9.12.0 branch from 8c8b6ad to 9d4d6df Compare April 8, 2025 11:13
@AbhiPrasad AbhiPrasad enabled auto-merge April 8, 2025 11:15
@AbhiPrasad AbhiPrasad closed this Apr 8, 2025
auto-merge was automatically disabled April 8, 2025 11:15

Pull request was closed

@AbhiPrasad AbhiPrasad reopened this Apr 8, 2025
@AbhiPrasad AbhiPrasad enabled auto-merge April 8, 2025 11:15
Copy link
Contributor

github-actions bot commented Apr 8, 2025

size-limit report 📦

Path Size % Change Change
@sentry/browser 23.28 KB added added
@sentry/browser - with treeshaking flags 23.12 KB added added
@sentry/browser (incl. Tracing) 36.95 KB added added
@sentry/browser (incl. Tracing, Replay) 74.14 KB added added
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 67.51 KB added added
@sentry/browser (incl. Tracing, Replay with Canvas) 78.8 KB added added
@sentry/browser (incl. Tracing, Replay, Feedback) 90.61 KB added added
@sentry/browser (incl. Feedback) 39.67 KB added added
@sentry/browser (incl. sendFeedback) 27.9 KB added added
@sentry/browser (incl. FeedbackAsync) 32.67 KB added added
@sentry/react 25.09 KB added added
@sentry/react (incl. Tracing) 38.87 KB added added
@sentry/vue 27.51 KB added added
@sentry/vue (incl. Tracing) 38.67 KB added added
@sentry/svelte 23.32 KB added added
CDN Bundle 24.51 KB added added
CDN Bundle (incl. Tracing) 36.95 KB added added
CDN Bundle (incl. Tracing, Replay) 71.99 KB added added
CDN Bundle (incl. Tracing, Replay, Feedback) 77.16 KB added added
CDN Bundle - uncompressed 71.47 KB added added
CDN Bundle (incl. Tracing) - uncompressed 109.23 KB added added
CDN Bundle (incl. Tracing, Replay) - uncompressed 220.52 KB added added
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 233.05 KB added added
@sentry/nextjs (client) 40.49 KB added added
@sentry/sveltekit (client) 37.39 KB added added
@sentry/node 143.03 KB added added
@sentry/node - without tracing 96.24 KB added added
@sentry/aws-serverless 120.58 KB added added

@AbhiPrasad AbhiPrasad merged commit 273fc06 into master Apr 8, 2025
159 checks passed
@AbhiPrasad AbhiPrasad deleted the prepare-release/9.12.0 branch April 8, 2025 11:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants