chore: prepare 0.5 release freeze#360
Conversation
WalkthroughVersions are bumped to 0.6.0 across manifests, workspace dependencies, and docs. The justfile updates Python version materialization and lockfile generation behavior. The nightly alpha branch list adds ChangesVersion 0.6.0 Release Bump
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
cd803bb to
9e8d101
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/python/Cargo.toml`:
- Line 6: The Python crate is pinning its own version instead of inheriting the
workspace version. Update the package metadata in crates/python/Cargo.toml so
the crate uses the workspace version setting rather than a hardcoded version,
and keep the Python wheel version derived from the root Cargo.toml. Use the
package/version entry for the python crate to locate and replace the pinned
value with the workspace inheritance form.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: a9e0aee0-5b4d-418d-88d0-c7b15f653211
⛔ Files ignored due to path filters (3)
Cargo.lockis excluded by!**/*.lockpackage-lock.jsonis excluded by!**/package-lock.jsonuv.lockis excluded by!**/*.lock
📒 Files selected for processing (14)
.github/nightly-alpha-branches.yamlCargo.tomlcrates/node/package.jsoncrates/python/Cargo.tomldocs/getting-started/installation.mdxdocs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/observability-plugin/configuration.mdxdocs/supported-integrations/openclaw-plugin.mdxintegrations/coding-agents/claude-code/.claude-plugin/plugin.jsonintegrations/coding-agents/codex/.codex-plugin/plugin.jsonintegrations/openclaw/package.jsonpyproject.tomlpython/plugin/pyproject.toml
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
- GitHub Check: Check / Run
- GitHub Check: Preview docs
🧰 Additional context used
📓 Path-based instructions (20)
**/Cargo.toml
📄 CodeRabbit inference engine (.agents/skills/prepare-code-freeze/SKILL.md)
Confirm or infer the target release version from
upstream/main:Cargo.toml. Derive the release branch asrelease/<major>.<minor>.Keep Rust
Cargo.tomlpackage names and workspace metadata internally consistent with the rest of the release/package surface.Matching
Cargo.tomlshould triggercargo deny check.
Files:
crates/python/Cargo.tomlCargo.toml
**/*.{rs,py,js,ts,mjs,c,h,md,toml,yml,yaml,sh,json,go}
📄 CodeRabbit inference engine (AGENTS.md)
Keep SPDX headers on source files, documentation, scripts, and configuration files.
Files:
crates/python/Cargo.tomlCargo.tomlintegrations/openclaw/package.jsoncrates/node/package.jsonpyproject.tomlpython/plugin/pyproject.toml
**/*.{rs,py,go,js,ts,jsx,tsx,md,mdx,toml,yaml,yml,html}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
All source files must include an SPDX license header using the comment syntax appropriate for the file type, with SPDX-FileCopyrightText for 2026 NVIDIA CORPORATION & AFFILIATES and SPDX-License-Identifier: Apache-2.0.
Files:
crates/python/Cargo.tomlCargo.tomldocs/getting-started/quick-start/python.mdxpyproject.tomldocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxpython/plugin/pyproject.tomldocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
**/*.{rs,py,go,js,ts,md,mdx,toml,yaml,yml,json}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Avoid using
SONAR_IGNORE_START/SONAR_IGNORE_ENDexcept for documented false positives; keep the ignored block small, add a brief explanatory comment, and call it out in the PR description.
Files:
crates/python/Cargo.tomlCargo.tomldocs/getting-started/quick-start/python.mdxintegrations/openclaw/package.jsoncrates/node/package.jsonpyproject.tomldocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxpython/plugin/pyproject.tomldocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
crates/python/**/*.{rs,toml}
📄 CodeRabbit inference engine (.agents/skills/test-python-binding/SKILL.md)
If the native Rust bridge changed, add the Rust crate tests for
nemo-relay-python.
Files:
crates/python/Cargo.toml
**
⚙️ CodeRabbit configuration file
**:AGENTS.md
This file provides guidance to agents, including Claude Code and OpenAI Codex, when working in this repository.
Project Overview
NeMo Relay is a multi-language agent runtime framework for execution scopes, lifecycle events, middleware, plugins, and observability around tool and LLM calls. The core runtime is Rust. Primary supported bindings are Rust, Python, and Node.js. Go and the raw C FFI are experimental and source-first.
The shared runtime model is:
- Scope stacks decide where work belongs and which scope-local behavior is visible.
- Middleware registries decide what guardrails and intercepts run around managed calls.
- Plugins install reusable runtime behavior from configuration.
- Events record runtime behavior in ATOF form.
- Subscribers and exporters consume events in-process or export them to ATIF, OpenTelemetry, OpenInference, or other backends.
Repository Structure
The repository layout separates the Rust runtime, language bindings,
documentation, integrations, and agent-facing skills.crates/ core/ # Rust core runtime crate, published as nemo-relay adaptive/ # Adaptive runtime primitives and plugin components python/ # PyO3 native extension for the Python package ffi/ # Raw C ABI layer used by downstream bindings such as Go node/ # NAPI Node.js binding and JavaScript/TypeScript entry points python/ nemo_relay/ # Python wrapper package: scopes, tools, LLM, middleware, typed helpers, plugins, adaptive helpers tests/ # Python tests go/ nemo_relay/ # Experimental Go CGo binding and tests fern/ # Fern documentation site scripts/ # Stable wrappers and helper scripts; build/test/docs entry points live in justfile skills/ # Published Codex/agent skills for NeMo Relay usage patternsPrerequisites
Insta...
Files:
crates/python/Cargo.tomlCargo.tomldocs/getting-started/quick-start/python.mdxintegrations/openclaw/package.jsoncrates/node/package.jsonpyproject.tomldocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxpython/plugin/pyproject.tomldocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
crates/{python,ffi,node}/**/*
⚙️ CodeRabbit configuration file
crates/{python,ffi,node}/**/*: Treat binding changes as public API changes. Check for parity with the other language bindings, FFI ownership/lifetime safety,
callback error propagation, stable type conversion, and consistent async/stream semantics.
Flag changes that update one binding without corresponding tests or documentation for the same surface elsewhere.
Files:
crates/python/Cargo.tomlcrates/node/package.json
.github/nightly-alpha-branches.yaml
📄 CodeRabbit inference engine (.agents/skills/prepare-code-freeze/SKILL.md)
Update
.github/nightly-alpha-branches.yamlto include the new release branch during code freeze preparation
Files:
.github/nightly-alpha-branches.yaml
.github/{nightly-alpha-branches.yaml,workflows/nightly-alpha-tag.yaml}
📄 CodeRabbit inference engine (.agents/skills/prepare-code-freeze/SKILL.md)
Validate
.github/nightly-alpha-branches.yamland.github/workflows/nightly-alpha-tag.yamlYAML syntax during code freeze
Files:
.github/nightly-alpha-branches.yaml
{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}
⚙️ CodeRabbit configuration file
{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}: Review automation changes for reproducibility, pinned versions where appropriate, secret handling, and consistency with the documented validation matrix.
Pay attention to commands that need generated native artifacts, FFI libraries, or platform-specific environment variables.
Files:
.github/nightly-alpha-branches.yaml
Cargo.toml
📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)
Treat
Cargo.toml[workspace.package].versionas the source of truth for the Rust workspace and Python build versioning, and keepworkspace.dependencies.nemo-relay,nemo-relay-adaptive,nemo-relay-pii-redaction,nemo-relay-ffi, andnemo-relay-cliself-references aligned when the workspace version changes.
Files:
Cargo.toml
**/*.mdx
📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)
MDX top-of-file SPDX comments must use {/* ... */} delimiters instead of HTML comment delimiters (Must-Fix)
For documentation-site changes, run the docs build/validation flow (
just docsor./scripts/build-docs.sh html) so generated Fern API reference pages are refreshed before validation.In MDX files, top-of-file comments must use JSX comment delimiters
{/* ... */}for SPDX headers; do not use HTML comments
Files:
docs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxdocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
docs/getting-started/**
📄 CodeRabbit inference engine (.agents/skills/add-binding-feature/SKILL.md)
Update
docs/getting-started/materials when usage or onboarding behavior changed.
Files:
docs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/getting-started/installation.mdx
**/*.{md,mdx}
📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)
**/*.{md,mdx}: Keep package names, repository references, and build commands current in documentation and examples
Keep stable user-facing wrappers at thescripts/root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work
Files:
docs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxdocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
{RELEASING.md,docs/**/*.md,docs/**/*.mdx}
📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)
Keep release-process and release-notes guidance in maintainer-facing docs such as RELEASING.md, not in user-facing docs pages or CHANGELOG.md
Files:
docs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxdocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}
⚙️ CodeRabbit configuration file
{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency across language bindings.
Flag stale examples, missing SPDX headers where required, and instructions that no longer match CI or pre-commit behavior.
Files:
docs/getting-started/quick-start/python.mdxdocs/getting-started/quick-start/rust.mdxdocs/supported-integrations/openclaw-plugin.mdxdocs/observability-plugin/configuration.mdxdocs/getting-started/installation.mdx
integrations/openclaw/package.json
📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)
Keep
integrations/openclaw/package.json's npm package version aligned with the workspace-rootpackage-lock.json.
Files:
integrations/openclaw/package.json
crates/node/**/*.{js,ts,jsx,tsx,json}
📄 CodeRabbit inference engine (.agents/skills/test-node-binding/SKILL.md)
Format changed Node files with
npm run format --workspace=nemo-relay-node
Files:
crates/node/package.json
crates/node/package.json
📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)
Keep the Node package metadata in
crates/node/package.jsonaligned with the generated package name, entrypoints, and published artifact expectations.Keep
crates/node/package.json's npm package version aligned with the workspace-rootpackage-lock.json.
Files:
crates/node/package.json
pyproject.toml
📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)
Keep Python packaging metadata in
pyproject.tomlconsistent with the published package name, import path, and release-facing build behavior.
Files:
pyproject.toml
🔇 Additional comments (13)
.github/nightly-alpha-branches.yaml (1)
6-6: LGTM!Cargo.toml (1)
23-37: LGTM!crates/node/package.json (1)
3-3: LGTM!pyproject.toml (1)
10-10: LGTM!docs/getting-started/quick-start/rust.mdx (1)
21-21: LGTM!Also applies to: 30-30, 50-50
docs/observability-plugin/configuration.mdx (1)
87-93: LGTM!Also applies to: 104-110, 194-200, 203-209, 252-258, 263-269, 314-320, 324-330
docs/supported-integrations/openclaw-plugin.mdx (1)
44-44: LGTM!Also applies to: 57-57
python/plugin/pyproject.toml (1)
11-11: LGTM!integrations/coding-agents/claude-code/.claude-plugin/plugin.json (1)
3-3: LGTM!integrations/coding-agents/codex/.codex-plugin/plugin.json (1)
3-3: LGTM!integrations/openclaw/package.json (1)
3-3: LGTM!Also applies to: 66-66
docs/getting-started/installation.mdx (1)
103-103: LGTM!Also applies to: 127-127, 181-181, 204-205, 222-222, 251-251
docs/getting-started/quick-start/python.mdx (1)
23-23: LGTM!
License DiffCompared against Lockfile license changesLockfile License ChangesRustAdded
Removed
Updated/Changed
NodeAdded
Removed
Updated/Changed
PythonAdded
Removed
Updated/Changed
Status output |
9e8d101 to
54efb5e
Compare
Signed-off-by: Will Killian <wkillian@nvidia.com>
42cf681 to
db7d339
Compare
Overview
Prepare the 0.5 release freeze from upstream main and advance main to 0.6.0.
Details
release/0.5branch from upstreammain(70b7559e).release/0.5to.github/nightly-alpha-branches.yaml.just set-version 0.6.0, updating Cargo, Node/OpenClaw, Python, coding-agent plugin,Cargo.lock,package-lock.json, anduv.locksurfaces.version.workspace = trueincrates/python/Cargo.toml.dynamic = ["version"]in the rootpyproject.tomlfor normal builds, while retaining explicit temporary versions forpackage-pythonwheel builds.Cargo.lockrequired by its--lockedintegration-test build and addedjust generate-worker-plugin-lockfilefor regeneration after dependency or version changes.0.5.0documentation install/package/configuration examples to0.6.0; no intentional current-version leftovers remain underREADME.md,docs, orfern.nemo-relay-types,nemo-relay-plugin,nemo-relay-worker-proto,nemo-relay-worker, andnemo-relay-pluginPython package are all covered.release/0.5; this code-freeze PR targetsmain.Validation: focused worker-plugin tests (25 passed),
just test-rust,just docs, YAML validation,git diff --check, and targeted pre-commit checks passed.Where should the reviewer start?
Start with
generate-worker-plugin-lockfileinjustfile, the fixtureCargo.lock,set_python_package_version, the rootpyproject.toml, and the version/documentation diff.Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)
Summary by CodeRabbit
release/0.5path.