Skip to content

ci(hu): wasm plugin test job, full check-hu, hu docs (hu stack 9/9)#240

Open
YuanYuYuan wants to merge 6 commits into
dev/pr-hu-1h-hu-monitorfrom
dev/pr-hu-1i-ci-docs
Open

ci(hu): wasm plugin test job, full check-hu, hu docs (hu stack 9/9)#240
YuanYuYuan wants to merge 6 commits into
dev/pr-hu-1h-hu-monitorfrom
dev/pr-hu-1i-ci-docs

Conversation

@YuanYuYuan

@YuanYuYuan YuanYuYuan commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

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-hu builds the meter/monitor/template WASM plugins and lints the gated hu-*-tests.
  • a dedicated WASM Plugin Tests job (scripts/ci/hu-tests.sh) runs the hu_meter (44) + hu_monitor (10) suites on the 2-core runner (--test-threads=1).
  • hu docs: docs/tools/{hu,hu-plugins,hu-vs-ros2cli,why-hu}.md; retires console.md; updates mkdocs/RELEASING.

Verified on 2-core (whippet): full check-hu + hu-tests.sh both suites green.

Base: dev/pr-hu-1h-hu-monitor. Breaking changes: none.

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://ZettaScaleLabs.github.io/hiroz/pr-preview/pr-240/

Built to branch gh-pages at 2026-07-25 13:46 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@YuanYuYuan YuanYuYuan changed the title ci+docs(hu): WASM plugin test job, full check-hu, hu docs (hu stack 9/9) ci(hu): wasm plugin test job, full check-hu, hu docs (hu stack 9/9) Jul 24, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 the hu host + WASM plugins and run the hu_meter / hu_monitor integration suites single-threaded on ubuntu-latest.
  • Extend check-hu / clippy coverage to build wasm32-wasip2 plugins and lint hu-*-tests-gated test modules.
  • Introduce hu documentation set (overview, reference, plugin authoring, comparisons) and update existing docs to prefer hu router over the removed zenoh_router example; retire docs/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.

Comment thread scripts/test-pure-rust.nu
Comment thread scripts/ci/hu-tests.sh

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 3 comments.

Comment thread docs/tools/hu-plugins.md
Comment thread docs/tools/hu.md
Comment thread RELEASING.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/ci.yml

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 pwd to derive CARGO_TARGET_DIR and later references crates/... 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

Comment thread docs/tools/hu-plugins.md Outdated
Comment thread .github/workflows/test.yml Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.

Comment thread docs/getting-started/quick-start.md
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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 build CARGO_TARGET_DIR and later uses relative paths like crates/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 computing CARGO_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.

Comment thread scripts/test-ros.nu
Comment on lines +46 to +51
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."
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants