fix(checksums): update MoonBit and componentize-py rolling checksums#388
fix(checksums): update MoonBit and componentize-py rolling checksums#388
Conversation
Both tools use rolling URLs (/latest/ and /canary/) that change when new versions are published, invalidating pinned checksums. - Update rules_moonbit git_override to 436bd87 (fresh checksums) - Update all componentize-py canary checksums (all 5 platforms) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
AI Code Review for PR #388
This configuration file defines a set of tools and dependencies used in a project that involves building WebAssembly components, optimizing them with Binaryen, and managing various cryptographic operations. The file uses Bazel rules to define repositories, download tool binaries, and manage Rust crates.
Here's a breakdown of the key components:
-
Tool Repositories:
wac_src,wasm_tools_src,wasmsign2_src,wit_bindgen_src, andwrpc_srcare Git repositories that contain the source code for various tools.- These repositories are used to build and manage the binaries of these tools.
-
Tool Downloads:
- The file includes download rules for several tools such as
componentize-py,wasmsign2_cli_wasm,loom_wasm, andwasm_tools_component_toolchain_local. - Each tool has a specific version, SHA-256 checksum, and URL suffix that are used to verify the integrity of the downloaded files.
- The file includes download rules for several tools such as
-
Rust Crates:
- The file defines Rust crates using the
rules_rustpackage. - It specifies the Cargo lockfile and manifests for various crates such as
componentize-py,wasmsign2,ssh_keygen, andwasm_embed_aot. - These crates are used to build and manage the binaries of these Rust tools.
- The file defines Rust crates using the
-
Checksums:
- The file includes checksums for each tool binary, ensuring that the downloaded files match expected hashes.
- This helps in verifying the integrity of the downloaded files and ensures that the correct versions of the tools are used.
-
Platform Support:
- The file specifies the supported platforms for each tool, allowing Bazel to download the appropriate binaries based on the target platform.
-
Dev Dependency Tools:
- The
moonbittool is defined as a dev dependency usingdev_dependency = True. - This means that the
moonbittool will only be used during development and not in production builds.
- The
Overall, this configuration file provides a comprehensive setup for building WebAssembly components, optimizing them with Binaryen, and managing cryptographic operations using Rust crates.
Reviewed by qwen2.5-coder:3b (local Ollama). Advisory only — may miss issues or report false positives.
Commands
| Command | Description |
|---|---|
/ask <question> |
Discuss this review — ask questions or disagree with findings |
/review-pr |
Re-run the review from scratch |
/review-pr <focus> |
Re-run with specific instructions (e.g. /review-pr focus on error handling) |
The canary release rolled again between the initial checksum capture and CI execution. Updated darwin_arm64 to the current value. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
AI Code Review for PR #388
This configuration file is a comprehensive set of rules and dependencies for building and deploying WebAssembly (Wasm) components using Bazel, a build tool. It includes various tools, libraries, and repositories that are essential for developing and running WebAssembly applications.
Here's a breakdown of the key components:
-
Bazel Rules: The file defines several custom Bazel rules such as
wasm_component_download,wasm_embed_aot_crates, andcrateto handle downloading Wasm components, compiling them with AOT (ahead-of-time) optimization, and managing Rust crates. -
Checksums: The
checksums/toolsdirectory contains JSON files that specify the SHA-256 checksums for various tools and libraries. These checksums are used by Bazel to verify the integrity of downloaded files. -
Tool Repositories: The file uses
git_repositoryrules to manage external tool repositories such aswac_src,wasmsign2_src, andwit_bindgen_src. This allows for easy access to these tools from within the Bazel workspace. -
Wasm Tool Repositories: Similar to tool repositories, but specifically for Wasm-related tools like
wasm_tools_srcandwrpc_src. -
Crate Management: The file uses
craterules to manage Rust crates required for building WebAssembly components. It specifies the Cargo lockfile and manifests for each crate. -
Platform Support: The configuration includes platform support information, specifying which platforms (e.g., macOS, Linux, Windows) are supported by various tools and libraries.
-
Componentize-Py: A specific tool is mentioned,
componentize-py, which is used for componentizing Python code into WebAssembly components. This tool is managed using thecraterule. -
Wasm Embed AOT Crates: These crates are used to embed ahead-of-time compiled Wasm modules within Rust binaries.
-
SHA-256 Hashes: The SHA-256 hashes are crucial for verifying the integrity of downloaded files, ensuring that the correct versions and platforms are used.
This configuration file is designed to be flexible and adaptable, allowing developers to easily integrate new tools and libraries into their Bazel-based WebAssembly development workflow.
Reviewed by qwen2.5-coder:3b (local Ollama). Advisory only — may miss issues or report false positives.
Commands
| Command | Description |
|---|---|
/ask <question> |
Discuss this review — ask questions or disagree with findings |
/review-pr |
Re-run the review from scratch |
/review-pr <focus> |
Re-run with specific instructions (e.g. /review-pr focus on error handling) |
Summary
rules_moonbitgit_override to436bd87(freshly updated checksums for all MoonBit/latest/URLs)componentize-py/canary/checksums inchecksums/tools/componentize-py.json(all 5 platforms)Root cause
MoonBit and componentize-py both publish to rolling URLs (
/latest/and/canary/). When they ship new releases, the binary at the URL changes but the pinned checksums in this repo become stale, breaking all CI.Test plan
@dependabot rebasethe 3 open PRs (rust/checksum(deps): bump tempfile from 3.24.0 to 3.26.0 in /tools/checksum_updater #385, rust/wasm-checksum(deps): bump chrono from 0.4.43 to 0.4.44 in /tools/checksum_updater_wasm #386, rust/checksum(deps): bump chrono from 0.4.43 to 0.4.44 in /tools/checksum_updater #387)🤖 Generated with Claude Code