-
Notifications
You must be signed in to change notification settings - Fork 746
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
substrate/utils: enable wasm builder diagnostics propagation #5838
substrate/utils: enable wasm builder diagnostics propagation #5838
Conversation
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
This reverts commit c57e9ef.
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Yeah that doesn't sound really nice. You could for example introduce a env variable to do this. |
Great idea! Do you see it as a feature guarded by an env variable that should be either |
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Signed-off-by: Iulian Barbu <iulian.barbu@parity.io>
Description
substrate-wasm-builder
can be a build dependency for crates which develop FRAME runtimes. I had a tough time seeing errors happening in such crates (e.g. runtimes from thetemplates
directory) in my IDE. I use a combination of rust-analyzer + nvim-lsp + nvim-lspconfig + rustacean.vim and all of this stack is not able to correctly parse errors emitted during thebuild
phase.As a matter of fact there is also a cargo issue tracking specifically this issue where cargo doesn't propagate the
--message-format
type to the build phase: here initially and then here. It feels like a solution for this use case isn't very close, so if it comes to runtimes development (both as an SDK user and developer), enabling wasm builder to emit diagnostics messages friendly to IDEs would be useful for regular workflows where IDEs are used for finding errors instead of manually runningcargo
commands.Integration
It can be an issue if Substrate/FRAME SDKs users and developers rely on the runtimes' crates build phase output in certain ways. Emitting compilation messages as json will pollute the regular compilation output so people that would manually run
cargo build
orcargo check
on their crates will have a tougher time extracting the non JSON output.Review Notes
Rust IDEs based on rust-analyzer rely on cargo check/clippy to extract diagnostic information. The information is generated by passing flags like
--messages-format=json
to thecargo
commands. The messages are extracted by rust-analyzer and published to LSP clients that will populate UIs accordingly.We need to build against the wasm target by using
message-format=json
too so that IDEs can show the errors for crates that have a build dependency onsubstrate-wasm-builder
.