Test go binding
Build and test the NeMo Relay Go binding; use this for go/nemo_relay changes or Go-facing integration checksFrom its SKILL.md
npx -y skills add NVIDIA/NeMo-Relay --skill test-go-bindingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.3 KB, as published. Nobody here has run it
Build And Test Go Binding
Companion Guidance
Use karpathy-guidelines alongside this skill for implementation or review
work. Keep changes scoped, surface assumptions, and define focused validation
before editing.
Use this skill when the change is primarily in go/nemo_relay or the Go
binding behavior it depends on.
Important Constraint
The Go binding links against the shared FFI library. just test-go
builds that library for you, while just build-go remains useful when
you want an explicit build-only pass or need the artifact for other work.
Default Path
- Format changed Go packages with
cd go/nemo_relay && go fmt ./.... - Run Go tests with
just test-go. - If any Rust files changed as part of the Go work, also run
cargo fmt --all,just test-rust, andcargo clippy --workspace --all-targets -- -D warnings. - Use
just build-gowhen you want an explicit build-only pass. - Use
just ci=true test-gowhen you need the CI-style coverage and JUnit path. - Expand to broader validation only if the change touched shared semantics.
Common Commands
# Full Go suite
just test-go
# Format Go files
cd go/nemo_relay && go fmt ./...
# Required when the Go change also touched Rust code
cargo fmt --all
just test-rust
cargo clippy --workspace --all-targets -- -D warnings
# CI-style Go suite with coverage and JUnit artifacts
just ci=true test-go
# Explicit shared-library build when needed separately
just build-go
In the test-go task, the ci variable is what is_true "{{ ci }}" checks.
Setting ci=true enables coverage_out and junit_out handling and adds
-coverprofile=coverage.out to go_test_cmd.
On macOS, also set DYLD_LIBRARY_PATH to the same ../../target/release
directory before running the raw go test command directly.
When To Escalate
- If the change touched
crates/ffi, also usetest-ffi-surface. - If the change touched
crates/coreor shared runtime semantics, also usevalidate-change.
References
go/nemo_relay/go.modgo/nemo_relay/nemo_relay.goREADME.mddocs/getting-started/installation.mdvalidate-change