Skip to content
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

meta(changelog): Update changelog for 8.31.0 #13734

Merged
merged 40 commits into from
Sep 20, 2024
Merged

Conversation

s1gr1d
Copy link
Member

@s1gr1d s1gr1d commented Sep 20, 2024

No description provided.

lforst and others added 30 commits September 10, 2024 17:19
Sometimes we were sending faulty `default` ops for Next.js transactions.
This seemed to happen when the HTTP integration couldn't get a handle of
the incoming requests (yet to figure out why).

This PR:
- Backfills the op for faulty transactions
- Sets the origin of spans generated by Next.js to `auto` (I couldn't
come up with a more specific origin because the second part of it is an
op and none are satisfactory)
- Remove the `sentry.skip_span_data_inference` which is only used
internally.

This change is hard to test because it seems to happen flakily that the
http integration isn't working.

Fixes #13598
…ch` op (#13600)

Ref (not complete fix)
#13596

This gives Next.js prefetch requests a `http.server.prefetch` op, when a
`Next-Router-Prefetch: 1` header is present.

In some situations Next.js doesn't seem to attach the header for
prefetch requests. Seems like it is only attached when the current route
is a dynamic route.
[Gitflow] Merge master into develop
This fixes a potential issue where segments can come in out of order due
to our flush "lock" was not being respected in two cases:

1) No current flush in progress, but flush throws an error (this should
be rare as the common errors that get thrown should stop the replay
completely)
2) Flush is in progress, which skips the code block that releases lock
and then calls debouncedFlush. This leaves the lock always set to a
resolved (or rejected) promise.

This ultimately should not change too much as the flush calls are
debounced anyway, but this cleans up the code a bit and also logs any
exceptions that may occur. However this can fix issues where segments
can come in out of order depending on how long the send request takes.
e.g.


![image](https://github.com/user-attachments/assets/ea304892-1c72-4e96-acc6-c714d263980c)


where ideally it looks like

![image](https://github.com/user-attachments/assets/8c3e706c-d3b2-43bd-a970-561b32b05458)
… minutes (#13069)

Including more checkouts will improve replayer scrubbing since it will
reduce the number of mutations that need to be processed (especially for
longer replays). The downside is that it will increase the size of
replays since we will have up to 9 more snapshots per replay (max replay
duration is 60 minutes / 6 minute checkouts).
…rs (#13406)

RN SDK uses the normalize function before passing data over the RN
Bridge, which only accepts serializable data.

Infinity causes ->
getsentry/sentry-react-native#4024
…odule (#13643)

Enabling this option will import the Sentry server config at the top of
the server entry file. This can be used when adding the node option
`--import` does not work. This however only comes with limited tracing
functionality.


Example Usage:
```js
export default defineNuxtConfig({
  sentry: {
    // ... other options
    simplifiedDeployment: true
  },
})
Another way to fix this issue would be to check via the debugger if the
property exists already on the error object and bail early before we
have local variables. However, this would add an extra round trip call
via the debugger for every error. Since re-thrown errors are far less
likely, I decided instead to just not overwrite existing local
variables.

This PR also adds a `Debugger.resume` call in the catch case to ensure
that they debugger will always resume even if we get errors while
debugging.

It's worth noting that this only fixes the issue in Node v20+ where we
use the async debugging interface.
Bump `sorcery` to version 1.0.0. 
the main changes made were to move the package to output ESM code.
The SvelteKit build complained a bit about ESM initially but moving from a static
to a dynamic import worked, so I'll take that.
https://docs.codecov.com/docs/test-result-ingestion-beta

https://playwright.dev/docs/test-reporters

Adds codecov test analytics to the repo, specifically for our playwright
tests.

This works by using the junit reporter with playwright, and then
uploading that via the `codecov/test-results-action@v1` GitHub Action.
…tests/test-applications/node-express-incorrect-instrumentation (#13687)
Currently we are only setting the `platform` and `instruction_addr` for
a wasm frame if we find a matching debug image. This is not always the
case and unconditionally parsing the instruction address is almost
always desirable.
…tests/test-applications/node-express-esm-without-loader (#13689)
…tests/test-applications/node-express-esm-preload (#13691)
…tests/test-applications/node-express-esm-loader (#13692)
…tests/test-applications/node-express-cjs-preload (#13694)
… span (#13658)

Add the navigation performance entry `activationStart` property as a span attribute to the
pageload span. The attribute is called `performance.activationStart` and it is measured in ms
relative to performance.timeOrigin.
Co-authored-by: IEatBeans <75859301+KyGuy2002@users.noreply.github.com>
I think what is happening is that by the time our close handler is
called, the handler had already been deleted, which causes a use after
free error. I also updated the code to check for is_closing which is
what that underlying libuv method actually asserts on.

Fixes #13661
Modifies the functionality of profiler start and stop calls to
regenerate the profilerId
On mobile devices, the form looked narrow due to the unspecified value
of the css variable --form-width. I set it to 100% for mobile devices
and this stretched the form to the full width (see before/after
screenshots).

before:
<img width="320" alt="before"
src="https://github.com/user-attachments/assets/60cb8741-02e4-4845-804b-a121861b4ae5">

after:
<img width="320" alt="after"
src="https://github.com/user-attachments/assets/645d8ba3-d694-432c-9c1d-2f3d939b6ccd">

---------

Co-authored-by: Catherine Lee <55311782+c298lee@users.noreply.github.com>
…3712)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 4.5.3 to 4.5.5.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v4.5.5/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->4.5.5 (2024-09-16)<!-- raw HTML omitted
--></h2>
<h2><!-- raw HTML omitted -->4.5.4 (2024-09-16)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: avoid DOM Clobbering gadget in
<code>getRelativeUrlFromDocument</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18115">#18115</a>)
(<a href="https://github.com/vitejs/vite/commit/e812716">e812716</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/18115">#18115</a></li>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18112">#18112</a>,
fs raw query (<a
href="https://github.com/vitejs/vite/commit/b901438">b901438</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/18112">#18112</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/f1d8845fff4842c3a0fec69309d9475c12c30cd9"><code>f1d8845</code></a>
release: v4.5.5</li>
<li><a
href="https://github.com/vitejs/vite/commit/2466c0862587c1beb4171daa02d8a541a8be18f6"><code>2466c08</code></a>
release: v4.5.4</li>
<li><a
href="https://github.com/vitejs/vite/commit/e8127166979e7ace6eeaa2c3b733c8994caa31f3"><code>e812716</code></a>
fix: avoid DOM Clobbering gadget in
<code>getRelativeUrlFromDocument</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18115">#18115</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/b901438f99e667f76662840826eec91c8ab3b3e7"><code>b901438</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18112">#18112</a>,
fs raw query</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v4.5.5/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=4.5.3&new-version=4.5.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/getsentry/sentry-javascript/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Closes #13471

This can be used when you know what you're doing to avoid the warning
log.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #13068

Co-authored-by: c298lee <55311782+c298lee@users.noreply.github.com>
…arent element lookup (#13717)

Change the order for looking up parent elements to inject the integration script:

1. `document.body`
2. `document.head`
3. `document.currentScript.parentElement`
mydea and others added 9 commits September 18, 2024 16:35
With this change, it is easier to figure out from logs if the correct or
incorrect http instrumentation is added.

Now, if you see e.g. this in the logs, if users have enabled logs
(`debug: true` if not using `skipOpenTelemetrySetup: true`, else using
native OTEL debug logs with e.g. `diag.setLogger(new
DiagConsoleLogger(), DiagLogLevel.DEBUG)`):

```js
@opentelemetry/instrumentation-http-sentry Applying instrumentation patch for nodejs core module on require hook { module: 'http' }
@opentelemetry/instrumentation-http Applying instrumentation patch for nodejs core module on require hook { module: 'http' }
```

you can tell that that it has been double instrumenting this
incorrectly. You should never see the
`@opentelemetry/instrumentation-http` entry anymore, otherwise something
is wrong there.

This came out of getsentry/sentry-docs#11378, I
looked into various ways to debug this but there is not really an API
provided by OTEL that allows us to figure this out 😬
…3381)

This PR removes the check for `hasTracingEnabled` in
`getInjectionData` and simply always takes the non-recording span if
there is one. Which is always the case in server applications when handling a request.
For non-request-handling situations, we fall back anyway to the propagation context.
Looks like the bug that made us pin to Node 22.6.0 in our Node unit
tests was fixed and released in 22.8.0. This PR reverts the pin, meaning
we test against the latest Node 22 version again.
Related #13582
This work adds the `deleteSourcemapsAfterUpload` option to the Gatsby
plugin, allowing it to be passed to the Webpack plugin to set the
`sourceMapFilesToDeleteAfterUpload` without exposing the API.

This simplifies our workflow by eliminating the need to apply a Yarn
patch to modify the package whenever we want to use
`filesToDeleteAfterUpload`.

Before submitting a pull request, please take a look at our

[Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md)
guidelines and verify:

- [x] If you've added code that should be tested, please add tests.
- [x] Ensure your code lints and the test suite passes (`yarn lint`) &
(`yarn test`).

---------

Co-authored-by: Luca Forstner <luca.forstner@sentry.io>
Depending on the [nitro preset](https://nitro.unjs.io/deploy), the build
output changes. By using the `serverDir` option, the directory can be
retrieved dynamically.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See #13610

---------

Co-authored-by: lforst <8118419+lforst@users.noreply.github.com>
Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
Adds integration for `dataloader` using
[`@opentelemetry/instrumentation-dataloader`](https://www.npmjs.com/package/@opentelemetry/instrumentation-dataloader)
on the background.

A few notes:
- We currently don't have access to the lookup / request as there is no
hook from `@opentelemetry/instrumentation-dataloader`. So, we don't have
`cache.hit`, `cache.key`, `cache.item_size` and so on, in this
integration. I can try to implement those upstream, but if you have
another way in mind to access those please let me know.
- `@opentelemetry/instrumentation-dataloader` only records spans for
`load`, `loadMany` and `batch`, which all are `cache.get` operations.
There are also `prime`, `clear`, `clearAll`. We also can implement those
upstream and update the integration in future.
Adding the node option can be a confusing step. This adds a log output
which already includes the correct file path to add. It looks like this:
```
[Sentry] Using your sentry.server.config.ts file for the server-side Sentry configuration. 
Make sure to add the Node option import to the Node command where you deploy and/or run your application. 
This preloads the Sentry configuration at server startup. You can do this via a 
command-line flag (node --import ./.output/server/sentry.server.config.mjs [...]) or via 
an environment variable (NODE_OPTIONS='--import ./.output/server/sentry.server.config.mjs' node [...]).
```
…bugging (#13721)

* Adds an `onError` callback for replay SDK exceptions
* Do not log empty messages when calling `logger.exception`
* Send `ratelimit_backoff` client report when necessary (instead of
generic `send_error`)
@s1gr1d s1gr1d requested review from a team as code owners September 20, 2024 07:35
@s1gr1d s1gr1d requested review from a team, stephanie-anderson and chargome and removed request for a team September 20, 2024 07:38
Copy link
Contributor

github-actions bot commented Sep 20, 2024

size-limit report 📦

Path Size % Change Change
@sentry/browser 22.52 KB added added
@sentry/browser - with treeshaking flags 21.3 KB added added
@sentry/browser (incl. Tracing) 34.8 KB added added
@sentry/browser (incl. Tracing, Replay) 71.3 KB added added
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 61.75 KB added added
@sentry/browser (incl. Tracing, Replay with Canvas) 75.64 KB added added
@sentry/browser (incl. Tracing, Replay, Feedback) 88.43 KB added added
@sentry/browser (incl. Tracing, Replay, Feedback, metrics) 90.28 KB added added
@sentry/browser (incl. metrics) 26.83 KB added added
@sentry/browser (incl. Feedback) 39.66 KB added added
@sentry/browser (incl. sendFeedback) 27.19 KB added added
@sentry/browser (incl. FeedbackAsync) 31.96 KB added added
@sentry/react 25.28 KB added added
@sentry/react (incl. Tracing) 37.77 KB added added
@sentry/vue 26.72 KB added added
@sentry/vue (incl. Tracing) 36.67 KB added added
@sentry/svelte 22.66 KB added added
CDN Bundle 23.83 KB added added
CDN Bundle (incl. Tracing) 36.56 KB added added
CDN Bundle (incl. Tracing, Replay) 71.06 KB added added
CDN Bundle (incl. Tracing, Replay, Feedback) 76.38 KB added added
CDN Bundle - uncompressed 69.81 KB added added
CDN Bundle (incl. Tracing) - uncompressed 108.44 KB added added
CDN Bundle (incl. Tracing, Replay) - uncompressed 220.31 KB added added
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 233.53 KB added added
@sentry/nextjs (client) 37.53 KB added added
@sentry/sveltekit (client) 35.37 KB added added
@sentry/node 121.77 KB added added
@sentry/node - without tracing 93.41 KB added added
@sentry/aws-serverless 103.11 KB added added

CHANGELOG.md Outdated

- **feat(node): Add `dataloader` integration (#13664)**

This release adds a new integration for `dataloader` which is based on `@opentelemetry/instrumentation-dataloader`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This release adds a new integration for `dataloader` which is based on `@opentelemetry/instrumentation-dataloader`.
This release adds a new optional integration for the [`dataloader` package](https://www.npmjs.com/package/dataloader).

CHANGELOG.md Outdated
- feat(gatsby): Add optional `deleteSourcemapsAfterUpload` (#13610)
- feat(nextjs): Give app router prefetch requests a `http.server.prefetch` op (#13600)
- feat(nextjs): Improve Next.js serverside span data quality (#13652)
- feat(node): Add `disableInstrumentationWarnings` option (#13693) feat(nuxt): Adding `experimental_basicServerTracing`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- feat(node): Add `disableInstrumentationWarnings` option (#13693) feat(nuxt): Adding `experimental_basicServerTracing`
- feat(node): Add `disableInstrumentationWarnings` option (#13693)
- feat(nuxt): Adding `experimental_basicServerTracing` option to Nuxt module (#13643)

CHANGELOG.md Outdated

- **feat(node): Add `dataloader` integration (#13664)**

This release adds a new optional integration for the [`dataloader` package](https://www.npmjs.com/package/dataloader).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not optional - it's enabled by default:

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh thanks

@s1gr1d s1gr1d merged commit b1a26c8 into master Sep 20, 2024
157 checks passed
@s1gr1d s1gr1d deleted the prepare-release/8.31.0 branch September 20, 2024 12:06
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.