Skip to content

meta(changelog): Update changelog for 10.0.0 #17271

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 87 commits into from
Jul 31, 2025
Merged

Conversation

andreiborza
Copy link
Member

🤞 🤞 🤞

s1gr1d and others added 30 commits July 17, 2025 13:41
Adds a test case with a client, server and server API request which
checks:
- that everything is correctly connected
- that everything has parametrized routes (the current state of it -
some are not yet parametrized)

This is a visual representation of the test case (with a different
param):
<img width="502" height="197" alt="image"
src="https://github.com/user-attachments/assets/e1a14c2b-2547-427b-964b-5c8fb6db49a2"
/>


Part of #16686
This allows us to avoid `any` here, and makes more sense overall IMHO.
This is IMHO not super helpful, we constantly disable it or add a noop
comment for no gain.
[Gitflow] Merge master into develop
This PR 

* bumps all OpenTelemetry packages to v2 and equivalent (i.e. `0.202.0`
for experimental and latest versions for all instrumentations).
* removes our vendored express v5 instrumentation in favor of the
OpenTelemetry instrumentation
* adds polyfills for node utils to vercel-edge
* removes the `@sentry/opentelemetry` OpenTelemetry v2 test dev-package
as this is now covered by the package itself

**Note**: Once this PR is merged, the `develop` branch officially
becomes the `v10` branch and any releases for v9 have to happen on the
`v9` branch.
`BaseClient` was deprecated in v9, use `Client` as a direct replacement.
`hasTracingEnabled` was deprecated in v9, use `hasSpansEnabled` as a
direct replacement.
… sampling decisions (#17055)

Add a couple of unit tests to explicitly test sampling
behaviour of the core SDK's sampling logic when users pass in a
`tracesSampler` function returning negative sampling values (i.e. `0`,
`false`).
BREAKING CHANGE

In #16901 we
deprecated the `logger` export from `@sentry/core`.

This PR removes it for the v10 release.

---------

Co-authored-by: Andrei Borza <[email protected]>
This introduces a new AWS lambda layer that supports both ESM and CJS.
Instead of bundling the whole SDK, we install the local NPM package and
then prune all not strictly necessary files from `node_modules` by using
`@vercel/nft` to keep the layer size as small as possible.

closes #16876 
closes #16883
closes #16886 
closes #16879
…prior (#17091)

CI for the 10.0.0-alpha.0 release is failing at the build step but it's
unclear why. This hopefully reveals more info.
…ils (#17082)

Sentry CLI's `cli.releases.uploadSourceMaps` method previously never
rejected when the actual CLI binary execution exited with an error code.
In CLI 2.49.0 (and 2.50.0) I added a new live mode `rejectOnError` which
continues to pipe stdio to the process (the remix SDKs' upload script)
but now also rejects on error.

This PR 1. bumps Sentry CLI, 2. configures the CLI to actually reject
now but 3. also catches the rejection and logs a message. I decided to
still continue with the script because we should still delete source
maps. Otherwise, we risk deploying them when users expect them to be
deleted. (i.e. fail silently but correctly :D)
Just a minor cleanup from a TODO I left a while ago. We can safely
remove this check because CLS isn't reported before FCP is reported.
The current way of building the AWS Lambda Layer is not working during
releases because it tries to install @sentry/aws-serverless from the
registry instead of the workspace.

Temporarily disable it until we figure out how to fix it.
…ions (#17063)

When we first shipped support for
https://docs.sentry.io/product/explore/logs/ in the JavaScript SDK we
gated the logging related options (`enableLogs`, `beforeSendLog`) behind
`_experiments` namespace.

See #15717 and
#15814 for the PRs
that made this change.

For v10, we want to not make this experimental anymore, so we changed
the logging options to become top-level options to `Sentry.init`.
Looks like `example.com` has some kind of rate limit or random
unavailability. Switching to `docs.sentry.io` resolved the flakes. Maybe
we can replace all `example.com` uses in the codebase with a Sentry
domain 🤔 Wdyt?
Forgot to disable the build in the bundle step.
Extracting a test case in a new PR while working on route
parametrization.

Continuation of
#17054

Part of #16686
Extracting astro-4 test cases (same as in astro-5) in a new PR while
working on route parametrization.

Part of #16686
We removed this in order to release a v10 alpha but the release process
still expcets a built layer, thus failing. We'll wait for a proper layer
build fix.
Small cleanup forward-port to `develop` (see
#17095 (comment).)

Co-authored-by: Andrei <[email protected]>
#17106)

This fixes the AWS Layer release build which tried to fetch the new
package versions from the NPM registry, which don't exist yet during the
build. We now build a new `package.json` that uses `resolutions` to
point all Sentry packages to their local version.
Next try. Use local file link here too to skip registry fetch
we didn't actually build the resolutions correctly, this should fix it
)

Route Parametrization for Server Requests in Astro 5. 

The route information is gathered during build-time. During runtime, the
route information is matched to use the parametrized route information
during runtime

Part of #16686
AbhiPrasad and others added 17 commits July 29, 2025 09:14
…to `0.2.2` (#17207)

Although the way we pin this dep allows for patch versions, let's
explicitly bump this because
https://github.com/getsentry/sentry-javascript-node-native-stacktrace/releases/tag/0.2.2
includes a pretty nice fix for cross-platform timings.

Thanks again to @matthew-nicholson-anrok for the contribution :)
Marks the captured error as `{ handled: false, type: 'fastify' }`
For v9, the changes were already reverted in this PR
(#17179) to create
a quick fix we can release soon. However, this removed some
parametrization.

This PR here not only fixed the problem with continuously writing to
`globalThis` to share build-time data with the runtime (we don't do this
anymore). The route parametrization now happens only during runtime, as
we have access to the route segments at runtime with Astro v5.

This adds a **little** performance overhead when compared with the
previous approach (the route segments are now constructed during
runtime) - but this is not an expensive operation. The `.find` method
was used in the previous approach as well.


Fixes #17179
Follow-up for this PR:
#17168

Creating a shared function `flushIfServerless` as this functionality is
used quite often in various SDKs.
Adds a Sentry-internal base interface for build-time options used in
Sentry's meta-framework SDKs (e.g., Next.js, Nuxt, SvelteKit).

SDKs should extend this interface to add framework-specific
configurations. To include bundler-specific options, this type can be
combined with one of the `Unstable[Bundler]PluginOptions` types, such as
`UnstableVitePluginOptions` or `UnstableWebpackPluginOptions` (also
added in this PR)

```typescript
import type { BuildTimeOptionsBase, UnstableVitePluginOptions } from '@sentry/core';
import type { SentryVitePluginOptions } from '@sentry/vite-plugin';

// Example of how a framework SDK would define its build-time options
type MyFrameworkBuildOptions =
  BuildTimeOptionsBase &
  UnstableVitePluginOptions<SentryVitePluginOptions> & {
    // Framework-specific options can be added here
    myFrameworkSpecificOption?: boolean;
  };
```

I created some interfaces for better high-level organization:
- `SourceMapsOptions`
- `ReleaseOptions`
- `BundleSizeOptimizationsOptions`

---

Part of #14212
Fixed an issue where default exports in CommonJS were failing. Returning
a new exports object was overriding some default export functionality. I
removed some redundant code as well.
- Ref #17216

Because JavaScript can dynamically load code from text like this:
```ts
const {dynamicFn} = await import(`data:application/javascript,
export function dynamicFn() {
  throw new Error('Error from data-uri module');
};`);

dynamicFn();
```

You can get slack lines like this:
```
    at dynamicFn (data:application/javascript,export function dynamicFn() {  throw new Error('Error from data-uri module');};:1:38)
```
These can be huge, often base64 encoded strings.

Currently we skip regex parsing on anything over 1k in length but that
means we ignore the frame entirely.

This PR:
- Changes the stack parser so that if the line is over 1k, we still pass
the first 1k for parsing
- Adds initial check to the Node line parser that special cases
truncated lines with data URIs in them
There are no more pre-releases planned, so we can already re-enable the
layer.
This PR adds missing tool call attributes, we
add`gen_ai.response.tool_calls` attribute for OpenAI Chat Completion and
Responses API, supporting both streaming and non-streaming requests.

Core changes:

1. Request Side - Capture available tools:
      
      - Extract tools + web_search_options from request params
      - Set gen_ai.request.available_tools attribute
      
2. Response Side - Capture actual tool calls:

- Chat Completion: Extract from response.choices[].message.tool_calls
- Responses API: Extract from response.output[] (filter type ===
'function_call')
      - Set gen_ai.response.tool_calls attribute for both

3. Streaming Support (in streaming.ts):

    - Accumulation of tool calls during streaming
    - Respects recordOutputs privacy setting
…fault (#17220)

Flushing on feedback widget opening is better than on submit as you get
more relevant replay context, so we are going to make this the default
behavior and remove the configuration option. This is deprecated in
#17219

---------

Co-authored-by: Charly Gomez <[email protected]>
Copy link
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 23.77 kB added added
@sentry/browser - with treeshaking flags 22.35 kB added added
@sentry/browser (incl. Tracing) 39.41 kB added added
@sentry/browser (incl. Tracing, Replay) 77.5 kB added added
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 67.36 kB added added
@sentry/browser (incl. Tracing, Replay with Canvas) 82.2 kB added added
@sentry/browser (incl. Tracing, Replay, Feedback) 94.33 kB added added
@sentry/browser (incl. Feedback) 40.45 kB added added
@sentry/browser (incl. sendFeedback) 28.45 kB added added
@sentry/browser (incl. FeedbackAsync) 33.34 kB added added
@sentry/react 25.5 kB added added
@sentry/react (incl. Tracing) 41.38 kB added added
@sentry/vue 28.2 kB added added
@sentry/vue (incl. Tracing) 41.22 kB added added
@sentry/svelte 23.79 kB added added
CDN Bundle 25.28 kB added added
CDN Bundle (incl. Tracing) 39.29 kB added added
CDN Bundle (incl. Tracing, Replay) 75.37 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback) 80.8 kB added added
CDN Bundle - uncompressed 73.86 kB added added
CDN Bundle (incl. Tracing) - uncompressed 116.3 kB added added
CDN Bundle (incl. Tracing, Replay) - uncompressed 230.51 kB added added
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 243.33 kB added added
@sentry/nextjs (client) 43.44 kB added added
@sentry/sveltekit (client) 39.84 kB added added
@sentry/node-core 47.53 kB added added
@sentry/node 146.19 kB added added
@sentry/node - without tracing 91.63 kB added added
@sentry/aws-serverless 103.08 kB added added

@andreiborza andreiborza merged commit 0ec16f5 into master Jul 31, 2025
356 of 358 checks passed
@andreiborza andreiborza deleted the prepare-release/10.0.0 branch July 31, 2025 15:04
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.