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: Update CHANGELOG for 7.74.0 #9239

Merged
merged 43 commits into from
Oct 13, 2023
Merged

meta: Update CHANGELOG for 7.74.0 #9239

merged 43 commits into from
Oct 13, 2023

Conversation

Lms24
Copy link
Member

@Lms24 Lms24 commented Oct 13, 2023

7.74.0

mydea and others added 30 commits October 2, 2023 13:41
Bumps
[actions/upload-artifact](https://github.com/actions/upload-artifact)
from 3.1.2 to 3.1.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v3.1.3</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(github): remove trailing whitespaces by <a
href="https://github.com/ljmf00"><code>@​ljmf00</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/313">actions/upload-artifact#313</a></li>
<li>Bump <code>@​actions/artifact</code> version to v1.1.2 by <a
href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/436">actions/upload-artifact#436</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v3...v3.1.3">https://github.com/actions/upload-artifact/compare/v3...v3.1.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32"><code>a8a3f3a</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/436">#436</a>
from bethanyj28/main</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/7b48769c030f7121ecb01c3558dd3cd8b9660a20"><code>7b48769</code></a>
update dependency cache</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/66630398dfe3d04deb4c489ac54b9b468f071706"><code>6663039</code></a>
update dist/index.js</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/55e76b779da56f582e27a6f7aff54c1e610551e5"><code>55e76b7</code></a>
bump <code>@​actions/artifact</code> version</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/65d862660abb392b8c4a3d1195a2108db131dd05"><code>65d8626</code></a>
chore(github): remove trailing whitespaces (<a
href="https://redirect.github.com/actions/upload-artifact/issues/313">#313</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/upload-artifact/compare/v3.1.2...v3.1.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&package-manager=github_actions&previous-version=3.1.2&new-version=3.1.3)](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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[Gitflow] Merge master into develop
This extracts the `sampleTransaction` method out and exports this from
`core` so we can use it for POTEL (where we build transactions
differently).
In various places we mutate the `options` passed to `init()`, which is
a) not a great pattern and b) may break if users pass in frozen or
similar objects (for whatever reason).

I also normalized this to ensure a passed in `_metadata.sdk` always
takes precedent (we had this in most places, but not all).

Closes #9155
This is unused since v6 but we never got around to actually remove this,
so let's properly deprecate this for v8.
There were some bugs in the previous version where deprecated messages
would show up as `[object Object]` instead of showing the actual
deprecation messages. bumping this to 1.5.0 fixes this. (esp.
https://github.com/gund/eslint-plugin-deprecation/releases/tag/v1.3.1 is
important for us)
This was supposed to be removed in v7, but was forgotten.
…nt` (#9021)

This refactors pluggable integrations to use `processEvent`.
This adds a new `continueTrace` method which can be used to continue a
trace from headers.

This method has the following signature:

```ts
function continueTrace<V>(
  {
    sentryTrace,
    baggage,
  }: {
    sentryTrace: Parameters<typeof tracingContextFromHeaders>[0];
    baggage: Parameters<typeof tracingContextFromHeaders>[1];
  },
  callback: (transactionContext: Partial<TransactionContext>) => V,
): V
```
It seems to trip something up somewhere when config is undefined, so we
just remove these here to avoid this. These options are serialized etc.
so there may be something weird going on there...

Fixes #9168
When deploying to Vercel (non-edge), server code is converted into
Lambda functions. These functions have a tendency to freeze/shut down
before the SDK is able to flush out events, causing events to be
dropped. We already handle this in NextJS by manually calling `flush` 
if we detect we're in a serverless/Lambda environment.
This patch applies the (almost) same logic to SvelteKit's server side
instrumentation.
Add the boilerplate files for the new `@sentry/astro` package. Amongst the usual files, some noteworthy things include:
* Bumped the Volta Node version from 16 to 18 for the entire monorepo.
* Using Vitest instead of Jest, like we do in SvelteKit. 

ref #9182
This exposes a new `VueIntegration` from `@sentry/vue` which can be used
to initialize vue error tracking for a late-defined vue app.
This PR changes the performance handling of the node-experimental
package fundamentally, aligning it even more with the OpenTelemetry
model.
To make it easier to async add integrations later, which is useful e.g.
for replay but also for other cases.

Now you can just do:

```js
Sentry.addIntegration(new Sentry.Replay());
```
Adds `init` functions for the server and client side of the Astro SDK
with tests.

For now, most of what these functions do is set the SDK metadata. On the
client side, we add BrowserTracing, similarly to Next/SvelteKit.

ref #9182
In order for sampling propagation to work, we need to sample in OTEL,
not in Sentry. As the sentry spans are only created later.

Note that this _does not_ fix propagation yet in node-experimental, once
this is merged I still need to adjust the propagator (or rather, fork
it) from opentelemetry-node to work without sentry spans.
…9223)

E2E tests started failing for fastify because of 0.32.3
(https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/plugins/node/opentelemetry-instrumentation-fastify/CHANGELOG.md)
being released. This includes this change
open-telemetry/opentelemetry-js-contrib#1680
(which actually we wrote xD) that changes some span names, which lead to
E2E test failing.
It seems some have an issue because of this, and maybe this is overkill
anyhow. So I just inline a minimal version of this into the build file
here instead, let's see if that fixes it.

Fixes #9215
This fixes the propagator for node-experimental.

The "old" propagator from opentelemetry-node relies on having a
transaction for the active span etc, which we don't have anymore. So the
propagator never attached the correct stuff etc.

So now there is a new propagator for node-experimental:

* Instead of keeping DSC & TraceparentData on the OTEL Context, we just
keep the PropagationContext (which includes the DSC...)
* Add an E2E test to make sure we attach the outgoing header correctly
Turns out my "improvement" here actually broke streaming the query
response 😬 as in that case you may not provide a callback.

This PR fixes this by using `query.on('end')` instead in that case to
finish the span.

Fixes #9207
This was previously exported so we can use it in node-experimental, but
turns out we can't do that anyhow because we need to sample in OTEL.
This has not yet been released, so in order to avoid exporting stuff we
don't need public let's revert this export. (I'll leave the actual
restructuring of moving this into a dedicated file in, though, because I
think it still makes sense that way).
This PR moves common ANR code to utils so it can be used for Electron
renderer ANR detection.

## `watchdogTimer` 
Moved to utils with the addition of an enabled flag which isn't used in
node

## `createDebugPauseMessageHandler`
Handles messages from the debugger protocol.
- Collects script ids for later filename lookups
- Collects, converts and passes stack frames to a callback when the
debugger pauses
- Now uses `stripSentryFramesAndReverse` to remove Sentry frames!
timfish and others added 11 commits October 12, 2023 13:14
Co-authored-by: Luca Forstner <luca.forstner@gmail.com>
This adds a new `NodeFetch` integration that is enabled by default for Node 16+.

We use
[opentelemetry-instrumentation-node-fetch](https://github.com/gas-buddy/opentelemetry-instrumentation-fetch-node)
under the hood, which seems to have the best support/functionality.
…() (#9230)

A separate `debug` option for `enableAnrDetection` is confusing and is
not required if we add an `isEnabled()` function to the logger.
## Background
- My team runs Express inside Lambda - we have a monolithic Lambda
function with express handling routing, middleware, etc
- We are using `@sentry/node` today, and tried adding
`@sentry/serverless` for it's timeout warning, auto-handling of `flush`,
and links to cloudwatch logs
- But this caused all of our performance transaction traces to have an
incorrect name (and various other tag + context issues)

## Proposal
- A new `startTrace` boolean flag that turns on/off the
transaction tracing feature of `@sentry/serverless`
- This will allow our team to use `@sentry/serverless`, but still rely
on express `tracingHandler` for performance traces
- This also follows the general approach of the serverless package,
where each feature is gated by a wrapOptions flag
This PR adds the `@sentry/astro` NPM publishing target so that we can
publish the SDK with the next release.

ref #9182
Add the `sentryAstro` Astro integration which will be the core
component of the Astro SDK.

The integration takes care of:

* injecting SDK init code into the client and server entry points. 
* emitting source maps and adding the Sentry Vite plugin for source maps upload

The idea is: Basic SDK setup will only require `sentryAstro` to be added
by users. Everything else happens automatically. We also support a more
custom setup but it will require additional config files. The reason is
that we can only inject serialized code. We cannot take e.g. function
callbacks (e.g. `beforeSend`) in the options of `sentryAstro`.

---------

Co-authored-by: Francesco Novy <francesco.novy@sentry.io>
Adding [specific
keywords](https://docs.astro.build/en/reference/publish-to-npm/#integrations-library)
to an NPM package makes them show up in [Astro's integration library
page](https://astro.build/integrations/). This PR adds them to the Astro
package.json.

ref #9182
Fixes an issue where the Replay integration can potentially break
applications that use `styled-components`. `styled-components` [relies
on an exception being
throw](https://github.com/styled-components/styled-components/blob/b7b374bb1ceff1699f7035b15881bc807110199a/packages/styled-components/src/sheet/Tag.ts#L32-L40)
for CSS rules that are not supported by the browser engine. However, our
SDK suppressed any exceptions thrown from within rrweb, so
`styled-components` assumes that an unsupported rule was inserted
successfully and increases a rule index, which causes following inserted
rules to fail due to an out-of-bounds error.

This was a regression from v1 as [we were always re-throwing the
exception](https://github.com/getsentry/rrweb/blob/sentry-v1/packages/rrweb/src/sentry/callbackWrapper.ts#L17)

Fixes #9170

---------

Co-authored-by: Francesco Novy <francesco.novy@sentry.io>
@Lms24 Lms24 marked this pull request as ready for review October 13, 2023 10:20
@lforst lforst changed the base branch from develop to master October 13, 2023 10:20
@Lms24 Lms24 merged commit 6a0f478 into master Oct 13, 2023
24 checks passed
@Lms24 Lms24 deleted the prepare-release/7.74.0 branch October 13, 2023 10:22
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.

None yet

9 participants