Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
cd4e82c
fix: correct WIT binding module name in CLI tool example
avrabe Aug 22, 2025
01c1a7b
fix: resolve ld.gold compatibility and WIT binding provider forwarding
avrabe Aug 22, 2025
046f7a5
fix: resolve cross-package C++ header staging for WebAssembly components
avrabe Aug 22, 2025
7765a42
fix: resolve C++ header staging and Starlark syntax issues
avrabe Aug 22, 2025
bbd2ca3
fix: update Rust WIT binding imports for rust_wasm_component_bindgen
avrabe Aug 22, 2025
a52cf9f
fix: eliminate environment variable contamination in hermetic toolchains
avrabe Aug 22, 2025
e6921fa
docs: update documentation to reflect hermetic toolchain improvements
avrabe Aug 23, 2025
09e1ea2
fix: adjust JCO toolchain PATH for essential system tools
avrabe Aug 23, 2025
191c3ef
feat: complete shell script elimination with modernized toolchain str…
avrabe Aug 23, 2025
ce43aa3
fix: resolve critical CI failures across multiple component types
avrabe Aug 23, 2025
d979fe2
fix: add missing srcs parameter to rust_wasm_component_macro
avrabe Aug 23, 2025
4dca6a3
fix: use hermetic npm in docs-site build instead of system npm
avrabe Aug 23, 2025
785231b
fix: resolve remaining CI failures across component types
avrabe Aug 23, 2025
3d51b0f
fix: update Node.js version to 18.20.8 for Astro compatibility
avrabe Aug 23, 2025
6a80711
fix: resolve TinyGo PATH issues with hermetic Go binary resolution
avrabe Aug 23, 2025
16cc38b
fix: resolve WIT dependency analyzer stdout capture issue
avrabe Aug 23, 2025
8a53eb1
fix: add missing file_ops_toolchain_type to wkg_fetch rule
avrabe Aug 23, 2025
67c08f0
feat: implement dual strategy for TinyGo/Rust file operations selection
avrabe Aug 23, 2025
751e677
feat: upgrade to Node.js 20.18.0 for modern dependency compatibility
avrabe Aug 23, 2025
0610548
fix: resolve Rust LTO compatibility issues with WebAssembly builds
avrabe Aug 23, 2025
3db4824
fix: correct WIT binding module structure for user service component
avrabe Aug 23, 2025
5ab084b
fix: establish hermetic environment for docs-site Node.js subprocesses
avrabe Aug 23, 2025
4818418
fix: resolve wasmsign2 toolchain integration and crate dependency issues
avrabe Aug 23, 2025
7e6317f
fix: resolve remaining build failures for wit-bindgen and wasmsign2
avrabe Aug 23, 2025
25f6e0b
fix: resolve WIT binding namespace issues and add missing dependencies
avrabe Aug 24, 2025
f8e7b93
fix: resolve Guest trait method signature mismatches
avrabe Aug 24, 2025
a92481a
fix: resolve npm install ENOENT error in docs-site build
avrabe Aug 24, 2025
e7176a2
fix: update wstd from 0.5.3 to 0.5.4 to resolve wit-bindgen-rt versio…
avrabe Aug 24, 2025
29cf608
fix: remove unused wstd dependency to resolve wit-bindgen-rt version …
avrabe Aug 24, 2025
e8f5d25
fix: compile entire Go module directory in go_wasm_component rule
avrabe Aug 24, 2025
6f8a736
fix: restore main.go path detection in Go component rule
avrabe Aug 25, 2025
f5ab3f7
fix: properly compile entire Go module directory (final fix)
avrabe Aug 25, 2025
d7762b1
fix: resolve Go multi-file component compilation issues
avrabe Aug 25, 2025
4fe8147
fix: restore conditional Go compilation logic to fix module directory…
avrabe Aug 25, 2025
f1eb8fd
fix: ensure TinyGo always compiles entire Go module directory
avrabe Aug 25, 2025
a01bb56
fix: add utils.go to Go components using main.go
avrabe Aug 25, 2025
95abe77
feat: fix http_service_component Go compilation with local bindings
avrabe Aug 25, 2025
510487b
fix: complete Go component compilation fixes
avrabe Aug 25, 2025
169dce6
chore: force CI cache invalidation for C++ toolchain resolution
avrabe Aug 25, 2025
0e96528
fix: resolve wit-bindgen-rt version conflict by eliminating getrandom…
avrabe Aug 25, 2025
11eab07
fix: resolve user_service compilation errors in deterministic UUID ge…
avrabe Aug 26, 2025
07dc8c7
fix: add default host C++ toolchains for Rust binaries
avrabe Aug 26, 2025
54f7013
fix: add use_repo for local_config_cc to enable C++ toolchains
avrabe Aug 26, 2025
5775f77
fix: resolve cross-package C++ header staging issue (Issue #38)
avrabe Aug 26, 2025
ff79e5f
fix: resolve header staging regression from Issue #38 fix
avrabe Aug 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ build --jobs=auto
build --local_resources=memory=HOST_RAM*.8
build --local_resources=cpu=HOST_CPUS*.8

# Environment isolation for hermetic builds
build --action_env=WASI_SDK_PATH=
build --incompatible_strict_action_env

# Clippy configuration - only enable with --config=clippy
build:clippy --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build:clippy --output_groups=+clippy_checks
Expand Down
253 changes: 253 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
version: 2
updates:
# Rust dependencies for tools and components
- package-ecosystem: "cargo"
directory: "/tools/checksum_updater"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "rust/checksum"
include: "scope"
labels:
- "dependencies"
- "rust"
- "automated"
- "toolchain"

- package-ecosystem: "cargo"
directory: "/tools/checksum_updater_wasm"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "rust/wasm-checksum"
include: "scope"
labels:
- "dependencies"
- "rust"
- "automated"
- "wasm"

- package-ecosystem: "cargo"
directory: "/tools/ssh_keygen"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "rust/keygen"
include: "scope"
labels:
- "dependencies"
- "rust"
- "automated"
- "security"

- package-ecosystem: "cargo"
directory: "/tools/wizer_initializer"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "rust/wizer"
include: "scope"
labels:
- "dependencies"
- "rust"
- "automated"
- "performance"

- package-ecosystem: "cargo"
directory: "/tools/file_operations_component"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "rust/file-ops"
include: "scope"
labels:
- "dependencies"
- "rust"
- "automated"
- "wasm"

- package-ecosystem: "cargo"
directory: "/tools-builder/toolchains"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "rust/toolchains"
include: "scope"
labels:
- "dependencies"
- "rust"
- "automated"
- "toolchain"

# Go module dependencies
- package-ecosystem: "gomod"
directory: "/tools/file_ops"
schedule:
interval: "weekly"
day: "tuesday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "go/file-ops"
include: "scope"
labels:
- "dependencies"
- "tinygo"
- "automated"

- package-ecosystem: "gomod"
directory: "/tools/http_downloader_go"
schedule:
interval: "weekly"
day: "tuesday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "go/http-downloader"
include: "scope"
labels:
- "dependencies"
- "tinygo"
- "automated"

- package-ecosystem: "gomod"
directory: "/examples/olareg_wasm"
schedule:
interval: "weekly"
day: "tuesday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "go/olareg"
include: "scope"
labels:
- "dependencies"
- "tinygo"
- "automated"
- "registry"

- package-ecosystem: "gomod"
directory: "/examples/go_component"
schedule:
interval: "weekly"
day: "tuesday"
time: "06:00"
open-pull-requests-limit: 10
reviewers:
- "pulseengine/maintainers"
assignees:
- "pulseengine/maintainers"
commit-message:
prefix: "go/examples"
include: "scope"
labels:
- "dependencies"
- "tinygo"
- "automated"

# NPM dependencies for documentation site
- package-ecosystem: "npm"
directory: "/docs-site"
schedule:
interval: "weekly"
day: "wednesday"
time: "06:00"
open-pull-requests-limit: 5
reviewers:
- "pulseengine/maintainers"
commit-message:
prefix: "docs"
include: "scope"
labels:
- "dependencies"
- "documentation"
- "automated"

- package-ecosystem: "npm"
directory: "/examples/js_component"
schedule:
interval: "weekly"
day: "wednesday"
time: "06:00"
open-pull-requests-limit: 5
reviewers:
- "pulseengine/maintainers"
commit-message:
prefix: "js/examples"
include: "scope"
labels:
- "dependencies"
- "javascript"
- "automated"

# GitHub Actions workflow dependencies
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "thursday"
time: "06:00"
open-pull-requests-limit: 5
reviewers:
- "pulseengine/maintainers"
commit-message:
prefix: "ci"
include: "scope"
labels:
- "dependencies"
- "ci-cd"
- "automated"
8 changes: 3 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ We welcome contributions to the rules_wasm_component project! This document prov

- **Bazel 7.0+** with bzlmod support
- **Rust 1.75+** with WASM targets
- **WASM tools**: `wasm-tools`, `wac-cli`, `wit-bindgen-cli`

### Installation

Expand All @@ -20,14 +19,13 @@ cd rules_wasm_component
# Install Rust and WASM targets
rustup target add wasm32-wasip2 wasm32-wasip1 wasm32-unknown-unknown

# Install WASM tools
cargo install wasm-tools wac-cli wit-bindgen-cli

# Verify setup
# Verify setup - all tools downloaded automatically by Bazel
bazel build //...
bazel test //...
```

> **Note**: All WASM tools (`wasm-tools`, `wac-cli`, `wit-bindgen-cli`, etc.) are now downloaded automatically by Bazel for truly hermetic builds. No manual installation required!

## Contributing Guidelines

### Code Style
Expand Down
20 changes: 17 additions & 3 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@ bazel_dep(name = "rules_oci", version = "1.8.0")
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True)
bazel_dep(name = "stardoc", version = "0.7.1", dev_dependency = True)

# Test dependencies for cross-package C++ header examples
bazel_dep(name = "fmt", version = "11.0.2")
bazel_dep(name = "nlohmann_json", version = "3.11.3")

# Real-world C++ library examples for comprehensive testing
bazel_dep(name = "abseil-cpp", version = "20250814.0")

# bazel_dep(name = "catch2", version = "3.8.1") # Not available in current build setup
bazel_dep(name = "spdlog", version = "1.12.0")

# Note: SSH key generation now uses hermetic WebAssembly component (tools/ssh_keygen)

# Rust toolchain setup
Expand Down Expand Up @@ -97,7 +107,11 @@ wasi_sdk.register(
)
use_repo(wasi_sdk, "wasi_sdk")

# Register both WASI SDK and C++ toolchains
# Enable C++ toolchain auto-configuration for cross-platform support
cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure")
use_repo(cc_configure, "local_config_cc")

# Register both WASI SDK and C++ toolchains
register_toolchains(
"@wasi_sdk//:wasi_sdk_toolchain",
"@wasi_sdk//:cc_toolchain",
Expand Down Expand Up @@ -151,14 +165,14 @@ bazel_dep(name = "rules_nodejs", version = "6.5.0")

# Configure Node.js version and tools
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
node.toolchain(node_version = "18.20.8")
node.toolchain(node_version = "20.18.0")
use_repo(node, "nodejs_toolchains")

# JavaScript/TypeScript WebAssembly components with JCO
jco = use_extension("//wasm:extensions.bzl", "jco")
jco.register(
name = "jco",
node_version = "18.19.0",
node_version = "20.18.0",
version = "1.4.0",
)
use_repo(jco, "jco_toolchain")
Expand Down
Loading
Loading