Repository navigation
feat(js): Support excluding frameworks from migration guide items - #19729
Conversation
Migration guide items can only be scoped to an allowlist of frameworks (or `all`). Add an optional `excludeFrameworks` frontmatter field to hide an item for specific frameworks. Use it to hide the "profilesSampleRate and profilesSampler were removed" item for Bun, Cloudflare, and Deno. These SDKs don't support profiling, and the item linked to a profiling page that doesn't exist for them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
The plan checks whether excluded frameworks omit one checklist item. It also checks errors and page-load counts on the interactive migration pages. An issue escalates when those pages error, fail to load, or hide the item on frameworks that should still show it. Services: Mention PlanWhat changedThe interactive JavaScript v11 migration checklist hides the RiskA bad filter can hide the item on every framework, or drop the whole checklist. A throw in the new Intended effectAfter deploy, the bun, cloudflare, and deno interactive pages must omit the item with Production does not ship
Regression watchA throw or empty checklist on this path is the first user-visible failure. Watch errors and load volume on the interactive pages. Also watch that sibling framework pages still show the item.
Transaction names on this site are Not observableNo per-item view or click metric exists, so telemetry cannot prove the hide by itself. Fetch the page HTML for intended effect. Pageload spans did not match |
| category: data.category as string, | ||
| severity: data.severity, | ||
| frameworks: data.frameworks as string[] | 'all', | ||
| excludeFrameworks: (data.excludeFrameworks ?? []) as string[], |
There was a problem hiding this comment.
Bug: The excludeFrameworks field from YAML is assumed to be an array but lacks runtime validation. A non-array value will cause a TypeError and crash the build process.
Severity: MEDIUM
Suggested Fix
Add a runtime check to validate that excludeFrameworks is an array before attempting to call array methods on it. Use Array.isArray() to guard against incorrect types and either filter out invalid values or throw a more informative error to the author.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: src/components/migrationGuide/index.tsx#L61
Potential issue: The `excludeFrameworks` field, parsed from YAML frontmatter, is
type-asserted as `string[]` without any runtime validation. The code uses a nullish
coalescing operator (`?? []`) which only handles `null` or `undefined` cases. If an
author provides a non-array, non-string value in the YAML (e.g., a boolean, number, or
object), the subsequent call to `.includes()` on this value will raise a `TypeError`.
This will cause the application to crash during the build or deployment process,
preventing site updates.
Did we get this right? 👍 / 👎 to inform future reviews.
<!-- Keep the urgency section so automation can prioritize this PR. You may delete other sections you don't need. --> ## DESCRIBE YOUR PR This PR adds the migration guide for version 7 of the Sentry SDK for .NET, ready for the public release candidate, `7.0.0-rc.2`. It follows the pattern of the Flutter v10 guide from #19390: - A full guide at `/platforms/dotnet/migration/v6-to-v7/`, built from one include per change in `includes/migration/dotnet-v7/`. - An interactive checklist at `/platforms/dotnet/migration/v6-to-v7/interactive/` that renders the same includes through `<MigrationGuide migration="dotnet-v7" />`. - An agent prompt callout that points at the guide's `.md` URL. - A "Migrating to 7.x" section at the top of the existing .NET migration page, which links to both. Both pages live under `common/`, so they render for every .NET guide, such as ASP.NET Core, MAUI, WPF and Serilog. Xamarin uses a separate SDK, so the new pages exclude it. I didn't move the 6.x, 4.x and 3.x sections, so every existing URL and anchor keeps working and the PR needs no redirects. To register the collection, the PR adds `dotnet-v7` to the `MIGRATIONS` map in the `MigrationGuide` component and to the validator's `COLLECTIONS` map, with specs for both. These changes in `src/components/migrationGuide/` and `scripts/` touch code that the JavaScript and Flutter guides share, so they need an approval from the docs team. For reference, msonnb approved the last change to the component in #19729, and andreiborza approved the JavaScript interactive guide that added it in #19076. The checklist shows one step only on the MAUI guide. Every other step applies to every .NET guide, because .NET apps combine integrations, such as a Serilog sink in an ASP.NET Core app. I checked the guide against `7.0.0-rc.2` from nuget.org and against the `version7` branch at getsentry/sentry-dotnet@a56c63455. The guide describes 7.0.0. Where rc.2 still behaves differently, the release candidate note at the top says so. ### Why this goes live during the release candidate I'd like to merge this as soon as it's approved, while 7.0 is still in release candidate. 7.0.0 GA is planned for 2026-11-30. People who try the release candidate need the guide now, and the agent prompt needs a published `.md` URL to point at. Two develop-docs rules pull in different directions here. [Managing Linear projects](https://develop.sentry.dev/sdk/getting-started/playbooks/coordination/managing-linear-projects/#visibility-for-major-releases) says docs "MUST NOT go live before the SDK ships". The [breaking changes playbook](https://develop.sentry.dev/sdk/getting-started/playbooks/sdk-lifecycle/breaking-changes/#6-update-docs-and-changelog) says to publish the migration guide "before or alongside the major release". I read the first rule as protecting users from docs for code they can't get. Version `7.0.0-rc.2` is public on nuget.org, and the guide's first block says it's a release candidate and names that version. Other SDKs made the same call: - The Python 2.0 guide merged on 2024-02-28, while only the `2.0.0a1` alpha was out. Its note at the top said so. - The JavaScript v11 guide merged on 2026-09-08 with `11.0.0-beta.1` out, and its interactive version followed on 2026-09-11. - The Flutter v10 guide merged on 2026-10-05 with `10.0.0-rc.2` out, four days before 10.0.0. ### The release candidate note The guide opens with one `<Alert>`. It says there is no stable 7.0 yet, names `7.0.0-rc.2`, and says the rest of the .NET docs describe 6.x until 7.0.0 ships. It also covers what only the release candidate has: - `Logging.AddSentry()` after `ClearProviders()` doesn't add Sentry's logger providers back yet. That came with getsentry/sentry-dotnet#5776, after rc.2. - `DecompressionMethods` still includes Brotli, which getsentry/sentry-dotnet#5816 takes out of the default after rc.2. The note says how to leave it out until then. - An ASP.NET Core app that sends `ILogger` entries through NLog crashes with `Debug` on, tracked in getsentry/sentry-dotnet#5822. The guide's verify step turns `Debug` on, so the note says to leave it off in those apps. - Its `net11.0` builds depend on the .NET 11 release candidate versions of three `Microsoft.Extensions` packages. The rest of the guide describes 7.0.0 as released. At GA, I'll delete that one block from `includes/dotnet-v7-migration-overview.mdx`, and nothing else needs to change. ### What this PR leaves to other PRs This PR only adds the guide and what it needs. The reference pages are in other PRs, and this one doesn't need any of them to merge first: - Logs and the logging integrations: #19925 - `Microsoft.Extensions.Logging` and ASP.NET Core: #19961 - OpenTelemetry propagation: #19924 - Release and environment: #19960 - Hangfire monitor schedules: #19781 Three links in the guide point to the "Apps That Call UseSentry" sections that #19925 adds to the Serilog, NLog and log4net guides. Until #19925 merges, they open those guides at the top, and the migration guide sums up the same setups itself. There is no page for the new `Sentry.Extensions.Hosting` package yet. I'll link it from the guide once that page exists. Refs https://linear.app/getsentry/issue/NET-860 Refs getsentry/sentry-dotnet#5710 ## IS YOUR CHANGE URGENT? Help us prioritize incoming PRs by letting us know when the change needs to go live. Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the due date. You can update this information later by editing the PR description. - [x] Urgent deadline (GA date, etc.): 2026-11-30 - [ ] Other deadline: YYYY-MM-DD - [ ] No deadline: Not urgent, can wait up to 1 week+ ## PRE-MERGE CHECKLIST _Make sure you've checked the following before merging your changes:_ - [ ] Checked Vercel preview for correctness, including links - [ ] PR was reviewed and approved by any necessary SMEs (subject matter experts) - [ ] PR was reviewed and approved by a member of the [Sentry docs team](https://github.com/orgs/getsentry/teams/docs) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: James Crosswell <jamescrosswell@users.noreply.github.com> Co-authored-by: Alex Krawiec <alex.krawiec@sentry.io>
DESCRIBE YOUR PR
Items in the interactive JavaScript v11 migration guide (
includes/migration/javascript-v11/*.mdx) can only be scoped with aframeworksallowlist (orall). There's no way to show an item everywhere except for a few frameworks.excludeFrameworksfrontmatter field to migration guide items, filtered insrc/components/migrationGuide/index.tsx.profiling-legacy-optionsitem forbun,cloudflare, anddeno. These SDKs don't support profiling (the Profiling page is hidden for them), so the item was irrelevant there, and its link to/profiling/returned 404 on:/platforms/javascript/guides/bun/migration/v10-to-v11/interactive//platforms/javascript/guides/cloudflare/migration/v10-to-v11/interactive//platforms/javascript/guides/deno/migration/v10-to-v11/interactive/Example:
IS YOUR CHANGE URGENT?
Help us prioritize incoming PRs by letting us know when the change needs to go live.
Select exactly one option. For deadlines, replace
YYYY-MM-DDwith the due date. You can update this information later by editing the PR description.SLA
Thanks in advance for your help!
PRE-MERGE CHECKLIST
Make sure you've checked the following before merging your changes:
🤖 Generated with Claude Code