Skip to content

Commit d6b9322

Browse files
fix(wasm): document support and adoption of build_id section (#14597)
<!-- Use this checklist to make sure your PR is ready for merge. You may delete any sections you don't need. --> ## DESCRIBE YOUR PR This is a follow-up to #14591. The current state of the docs (across platforms) does not reflect: * that the`build_id` section is officially part of the [WASM tooling conventions](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) * that this section is adopted by tooling other than Sentry (in particular, `LLVM` and thus `emscripten` supports it [since version 17](llvm/llvm-project@c7af9ae)) * how `wasm-split` still fits in this landscape This PR tries to rectify this. Open topics: * It is obvious that `file-formats` and `identifiers` are duplicates across all platforms with `WASM` support. Of course, these could be extracted into includes, but I am no longer sure what the current approach in docs is regarding deduplication of sections. * I am not sure if the statement regarding WASM source maps (the text above my changes in the `file-formats` section) still holds, but we can fix those in another PR. ## IS YOUR CHANGE URGENT? Help us prioritize incoming PRs by letting us know when the change needs to go live. - [ ] Urgent deadline (GA date, etc.): <!-- ENTER DATE HERE --> - [ ] Other deadline: <!-- ENTER DATE HERE --> - [x] None: Not urgent, can wait up to 1 week+ ## SLA - Teamwork makes the dream work, so please add a reviewer to your PRs. - Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it. Thanks in advance for your help! ## PRE-MERGE CHECKLIST *Make sure you've checked the following before merging your changes:* - [x] Checked Vercel preview for correctness, including links - [x] PR was reviewed and approved by any necessary SMEs (subject matter experts) - [x] PR was reviewed and approved by a member of the [Sentry docs team](https://github.com/orgs/getsentry/teams/docs) ## LEGAL BOILERPLATE <!-- Sentry employees and contractors can delete or ignore this section. --> Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms. ## EXTRA RESOURCES - [Sentry Docs contributor guide](https://docs.sentry.io/contributing/) --------- Co-authored-by: JoshuaMoelans <[email protected]>
1 parent bbf4c0e commit d6b9322

File tree

17 files changed

+112
-88
lines changed

17 files changed

+112
-88
lines changed

docs/platforms/android/data-management/debug-files/file-formats/index.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
173173
debugging, but have shortcomings that make them impractical for a crash reporting
174174
tool like Sentry.
175175

176-
Since WASM does not specify debug/build IDs yet, we provide a separate tool to
177-
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
176+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
177+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
178+
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).
179+
180+
In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
178181
to help you create a debug companion file ready for uploading to Sentry
179182
while removing all debug information from the release binary.
180183

docs/platforms/android/data-management/debug-files/identifiers/index.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,14 @@ for symbolication.
8282

8383
## WASM Build IDs
8484

85-
WebAssembly does not yet support build IDs. The option proposed to
86-
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
87-
has not yet found widespread adoption. Instead, we use a custom
88-
extension to WebAssembly.
89-
90-
Our recommendation is to embed a UUID in the `build_id` custom section as
91-
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
92-
tool can do this for you automatically.
85+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
86+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).
87+
88+
`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).
89+
90+
Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
91+
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
92+
to split and extract debug information from your `*.wasm` file.
9393

9494
## ProGuard UUIDs
9595

docs/platforms/apple/common/data-management/debug-files/file-formats/index.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
173173
debugging, but have shortcomings that make them impractical for a crash reporting
174174
tool like Sentry.
175175

176-
Since WASM does not specify debug/build IDs yet, we provide a separate tool to
177-
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
176+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
177+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
178+
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).
179+
180+
In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
178181
to help you create a debug companion file ready for uploading to Sentry
179182
while removing all debug information from the release binary.
180183

docs/platforms/apple/common/data-management/debug-files/identifiers/index.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,14 @@ for symbolication.
8282

8383
## WASM Build IDs
8484

85-
WebAssembly does not yet support build IDs. The option proposed to
86-
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
87-
has not yet found widespread adoption. Instead, we use a custom
88-
extension to WebAssembly.
89-
90-
Our recommendation is to embed a UUID in the `build_id` custom section as
91-
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
92-
tool can do this for you automatically.
85+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
86+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).
87+
88+
`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).
89+
90+
Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
91+
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
92+
to split and extract debug information from your `*.wasm` file.
9393

9494
## ProGuard UUIDs
9595

docs/platforms/dart/guides/flutter/data-management/debug-files/file-formats/index.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
173173
debugging, but have shortcomings that make them impractical for a crash reporting
174174
tool like Sentry.
175175

176-
Since WASM does not specify debug/build IDs yet, we provide a separate tool to
177-
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
176+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
177+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
178+
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).
179+
180+
In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
178181
to help you create a debug companion file ready for uploading to Sentry
179182
while removing all debug information from the release binary.
180183

docs/platforms/dart/guides/flutter/data-management/debug-files/identifiers/index.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,14 @@ for symbolication.
8282

8383
## WASM Build IDs
8484

85-
WebAssembly does not yet support build IDs. The option proposed to
86-
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
87-
has not yet found widespread adoption. Instead, we use a custom
88-
extension to WebAssembly.
89-
90-
Our recommendation is to embed a UUID in the `build_id` custom section as
91-
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
92-
tool can do this for you automatically.
85+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
86+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).
87+
88+
`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).
89+
90+
Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
91+
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
92+
to split and extract debug information from your `*.wasm` file.
9393

9494
## ProGuard UUIDs
9595

docs/platforms/dotnet/common/data-management/debug-files/file-formats/index.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,11 @@ Note that we do not support source maps, which are also a format used for WASM
173173
debugging, but have shortcomings that make them impractical for a crash reporting
174174
tool like Sentry.
175175

176-
Since WASM does not specify debug/build IDs yet, we provide a separate tool to
177-
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
176+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
177+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
178+
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).
179+
180+
In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
178181
to help you create a debug companion file ready for uploading to Sentry
179182
while removing all debug information from the release binary.
180183

docs/platforms/dotnet/common/data-management/debug-files/identifiers/index.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,14 @@ for symbolication.
8282

8383
## WASM Build IDs
8484

85-
WebAssembly does not yet support build IDs. The option proposed to
86-
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
87-
has not yet found widespread adoption. Instead, we use a custom
88-
extension to WebAssembly.
89-
90-
Our recommendation is to embed a UUID in the `build_id` custom section as
91-
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
92-
tool can do this for you automatically.
85+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
86+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).
87+
88+
`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).
89+
90+
Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
91+
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
92+
to split and extract debug information from your `*.wasm` file.
9393

9494
## ProGuard UUIDs
9595

docs/platforms/javascript/common/data-management/debug-files/file-formats/index.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,11 @@ Note that we do not support source maps, which are also a format used for WASM
176176
debugging, but have shortcomings that make them impractical for a crash reporting
177177
tool like Sentry.
178178

179-
Since WASM does not specify debug/build IDs yet, we provide a separate tool to
180-
add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
179+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
180+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section). This section
181+
is a supported by `LLVM` [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47) (and with it, the corresponding `emscripten` toolchain).
182+
183+
In addition to that, we provide a tool to add build IDs and split files called [wasm-split](https://github.com/getsentry/symbolicator/blob/master/crates/wasm-split)
181184
to help you create a debug companion file ready for uploading to Sentry
182185
while removing all debug information from the release binary.
183186

docs/platforms/javascript/common/data-management/debug-files/identifiers/index.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,14 @@ for symbolication.
8585

8686
## WASM Build IDs
8787

88-
WebAssembly does not yet support build IDs. The option proposed to
89-
implement build IDs for WebAssembly ([Build ID Section for WASM](https://github.com/WebAssembly/tool-conventions/issues/133))
90-
has not yet found widespread adoption. Instead, we use a custom
91-
extension to WebAssembly.
92-
93-
Our recommendation is to embed a UUID in the `build_id` custom section as
94-
raw binary. Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
95-
tool can do this for you automatically.
88+
[WebAssembly supports build IDs](https://github.com/WebAssembly/tool-conventions/blob/main/BuildId.md) as a
89+
[custom section](https://webassembly.github.io/spec/core/binary/modules.html#custom-section).
90+
91+
`LLVM` (and with it, the corresponding `emscripten` toolchain) supports this [since version 17](https://github.com/llvm/llvm-project/commit/c7af9ae577bb04c5fe120fc07844a500818c8f47).
92+
93+
Our [`wasm-split`](https://github.com/getsentry/symbolicator/tree/master/crates/wasm-split)
94+
tool can also be used to add a build ID if your toolchain doesn't support this yet. It also allows you
95+
to split and extract debug information from your `*.wasm` file.
9696

9797
## ProGuard UUIDs
9898

0 commit comments

Comments
 (0)