ci(hu): wasm plugin test job, full check-hu, hu docs (hu stack 9/9)#240
ci(hu): wasm plugin test job, full check-hu, hu docs (hu stack 9/9)#240YuanYuYuan wants to merge 6 commits into
Conversation
|
There was a problem hiding this comment.
Pull request overview
Restores and hardens the hu pure-Rust CI pipeline by adding a dedicated WASM plugin integration-test job, expanding check-hu to build/lint the plugin-gated test suites, and introducing a full hu documentation section while removing the legacy hiroz-console docs.
Changes:
- Add a dedicated CI job (
scripts/ci/hu-tests.sh) to build thehuhost + WASM plugins and run thehu_meter/hu_monitorintegration suites single-threaded onubuntu-latest. - Extend
check-hu/ clippy coverage to buildwasm32-wasip2plugins and linthu-*-tests-gated test modules. - Introduce
hudocumentation set (overview, reference, plugin authoring, comparisons) and update existing docs to preferhu routerover the removedzenoh_routerexample; retiredocs/tools/console.md.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/test-ros.nu | Adds an up-front ros2 run verb check and uses the interop nextest profile for ROS interop runs. |
| scripts/test-pure-rust.nu | Expands check-hu to build WASM plugins and ensures clippy covers plugin-gated tests. |
| scripts/ci/hu-tests.sh | New CI script to build host + plugins and run WASM plugin integration suites serially. |
| RELEASING.md | Updates release checklist wording to reflect hu + plugin artifacts instead of hiroz-console. |
| mkdocs.yml | Replaces the old Tools nav entry with a new “hu Toolkit” section. |
| docs/user-guide/networking.md | Updates router guidance to use hu router and adjusts production vs dev recommendations. |
| docs/user-guide/interop.md | Updates router options list to include hu router. |
| docs/user-guide/examples.md | Switches “repo router example” guidance to hu router and removes zenoh_router from the examples list. |
| docs/user-guide/custom-messages.md | Replaces cargo run --example zenoh_router with hu router. |
| docs/tools/why-hu.md | New overview page explaining hu’s architecture (dispatcher/core/frontends/plugins/management). |
| docs/tools/hu.md | New hu reference and installation/build docs, including router usage and plugin model. |
| docs/tools/hu-vs-ros2cli.md | New comparison doc (feature matrix + rationale) between hu, ros2cli, and rqt. |
| docs/tools/hu-plugins.md | New plugin authoring guide (worlds, WIT boundary, permissions, discovery, lifecycle). |
| docs/tools/console.md | Removes legacy hiroz-console documentation. |
| docs/getting-started/quick-start.md | Updates “Artifacts” and router startup steps to use hu / hu router. |
| docs/core-concepts/services.md | Updates router startup instructions to hu router. |
| docs/core-concepts/pubsub.md | Updates router startup instructions to hu router. |
| docs/core-concepts/parameters.md | Updates router startup instructions to hu router. |
| docs/core-concepts/actions-advanced.md | Updates router startup instructions to hu router. |
| .github/workflows/test.yml | Speeds up container apt operations (mirror + cache) and adds a targeted nextest run for dynamic_subscriber tests (warn if none). |
| .github/workflows/ci.yml | Adds wasm32-wasip2 target where needed and introduces a dedicated “WASM Plugin Tests” job running scripts/ci/hu-tests.sh. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
85a9776 to
48f49ec
Compare
914ed7b to
6e1504d
Compare
48f49ec to
7e5e829
Compare
6e1504d to
e687ddd
Compare
7e5e829 to
25c763e
Compare
e687ddd to
d7e099f
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
scripts/ci/hu-tests.sh:16
- This script assumes it is executed from the repository root (it uses
pwdto deriveCARGO_TARGET_DIRand later referencescrates/...relative paths). If it is invoked from another working directory (common when running scripts by absolute path), it will build into the wrong target dir and fail to find plugin manifests.
export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$(pwd)/target}"
# Normalize a caller-provided relative CARGO_TARGET_DIR (e.g. "target") to an
# absolute path: the `${PATH}` entry built from it below is read by test
# binaries whose CWD is the crate root, where a relative dir wouldn't resolve.
case "$CARGO_TARGET_DIR" in
25c763e to
0fa34a2
Compare
d7e099f to
4725686
Compare
Restores the full pure-Rust CI pipeline for hu now that the plugins exist: check-hu builds the meter/monitor/template WASM plugins and lints the gated hu-*-tests, and a dedicated WASM Plugin Tests job runs the hu_meter/hu_monitor suites on the 2-core runner (scripts/ci/hu-tests.sh). Adds the hu docs (hu, hu-plugins, hu-vs-ros2cli, why-hu), retires the console doc, updates mkdocs/RELEASING. Also removes accidental core dumps and ignores core.*.
Addresses Copilot review on the CI PR: - hu-tests.sh now normalizes a caller-provided relative CARGO_TARGET_DIR to an absolute path before building the $PATH entry the test binaries read (they run with CWD=crate root, where a relative dir wouldn't resolve). - check-hu documents that its wasm32-wasip2 build steps need the sysroot: CI uses .#pureRust-ci; local runs should enter .#pureRust-wasm.
Set CARGO_TARGET_DIR in the standalone template build example, mark the bin-hu-* release artifacts as forthcoming (release.yml builds no hu binary yet), and describe hu-meter/hu-monitor as WASM plugins rather than binary builds.
0fa34a2 to
00d78b6
Compare
4725686 to
74369a9
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
scripts/ci/hu-tests.sh:15
- This script assumes it is invoked from the repository root (it uses
$(pwd)to buildCARGO_TARGET_DIRand later uses relative paths likecrates/hiroz-union/plugins). If it's run from another working directory (common when invoked from other scripts), it will build into the wrong target dir and fail to find the plugin manifests. Consider anchoring paths to the script location / repo root before computingCARGO_TARGET_DIR.
export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$(pwd)/target}"
# Normalize a caller-provided relative CARGO_TARGET_DIR (e.g. "target") to an
# absolute path: the `${PATH}` entry built from it below is read by test
# binaries whose CWD is the crate root, where a relative dir wouldn't resolve.
| let run_verb_check = (do -i { run-cmd "ros2 run --help" | complete }) | ||
| if $run_verb_check.exit_code != 0 { | ||
| error make { | ||
| msg: "ros2 CLI is missing the 'run' verb (ros2run package not installed in this devshell) -- every `ros2 run ...`-based interop test would hang or false-pass. Add ros2run (and ros2launch) to the devshell's ROS package set." | ||
| } | ||
| } |
Summary
Final PR of 9 (#231 split). Now that the plugins exist, this restores the full pure-Rust CI pipeline for hu and adds the docs:
check-hubuilds the meter/monitor/template WASM plugins and lints the gatedhu-*-tests.scripts/ci/hu-tests.sh) runs the hu_meter (44) + hu_monitor (10) suites on the 2-core runner (--test-threads=1).docs/tools/{hu,hu-plugins,hu-vs-ros2cli,why-hu}.md; retiresconsole.md; updates mkdocs/RELEASING.Verified on 2-core (whippet): full
check-hu+hu-tests.shboth suites green.Base:
dev/pr-hu-1h-hu-monitor. Breaking changes: none.