Skip to content

chore: prepare 0.5 release freeze#360

Merged
willkill07 merged 1 commit into
NVIDIA:mainfrom
willkill07:docs/code-freeze-0.5
Jul 3, 2026
Merged

chore: prepare 0.5 release freeze#360
willkill07 merged 1 commit into
NVIDIA:mainfrom
willkill07:docs/code-freeze-0.5

Conversation

@willkill07

@willkill07 willkill07 commented Jul 3, 2026

Copy link
Copy Markdown
Member

Overview

Prepare the 0.5 release freeze from upstream main and advance main to 0.6.0.

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.
  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Details

  • Created and pushed the release/0.5 branch from upstream main (70b7559e).
  • Added release/0.5 to .github/nightly-alpha-branches.yaml.
  • Ran just set-version 0.6.0, updating Cargo, Node/OpenClaw, Python, coding-agent plugin, Cargo.lock, package-lock.json, and uv.lock surfaces.
  • Preserved version.workspace = true in crates/python/Cargo.toml.
  • Preserved dynamic = ["version"] in the root pyproject.toml for normal builds, while retaining explicit temporary versions for package-python wheel builds.
  • Added the worker-plugin fixture Cargo.lock required by its --locked integration-test build and added just generate-worker-plugin-lockfile for regeneration after dependency or version changes.
  • Updated current 0.5.0 documentation install/package/configuration examples to 0.6.0; no intentional current-version leftovers remain under README.md, docs, or fern.
  • Audited package/version recipes against projects added since 0.4.0: nemo-relay-types, nemo-relay-plugin, nemo-relay-worker-proto, nemo-relay-worker, and nemo-relay-plugin Python package are all covered.
  • Release-bound PRs should now target release/0.5; this code-freeze PR targets main.

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-lockfile in justfile, the fixture Cargo.lock, set_python_package_version, the root pyproject.toml, and the version/documentation diff.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Relates to: none

Summary by CodeRabbit

  • Chores
    • Bumped the project and related packages/plugins to version 0.6.0.
    • Updated branch and release configuration to include the new release/0.5 path.
  • Documentation
    • Refreshed installation, quick-start, and observability examples to use 0.6.0.
    • Updated plugin install instructions for the latest release version.

@willkill07 willkill07 requested review from a team and lvojtku as code owners July 3, 2026 02:50
@github-actions github-actions Bot added size:M PR is medium Maintenance CI or Build or general repository maintenance labels Jul 3, 2026
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Versions 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 release/0.5.

Changes

Version 0.6.0 Release Bump

Layer / File(s) Summary
Workspace and crate version bumps
Cargo.toml, crates/node/package.json, python/plugin/pyproject.toml, integrations/coding-agents/claude-code/.claude-plugin/plugin.json, integrations/coding-agents/codex/.codex-plugin/plugin.json, integrations/openclaw/package.json
Workspace, package, and plugin version fields move from 0.5.0 to 0.6.0, and the Cargo workspace dependency pins follow suit.
Python packaging script version handling
justfile
set_python_package_version gains materialize_version; pyproject.toml and crates/python/Cargo.toml version handling changes accordingly, call sites are updated, and the worker plugin lockfile recipe is added.
Documentation version reference updates
docs/getting-started/installation.mdx, docs/getting-started/quick-start/*.mdx, docs/observability-plugin/configuration.mdx, docs/supported-integrations/openclaw-plugin.mdx
Installation, quick-start, and observability examples update pinned package and service versions from 0.5.0 to 0.6.0.
CI nightly-alpha branch config
.github/nightly-alpha-branches.yaml
Adds release/0.5 to the tracked branches list.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is Conventional Commits compliant and accurately summarizes the release-freeze prep.
Description check ✅ Passed The description follows the template with Overview, Details, reviewer start, and related-issues sections filled in.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

@willkill07 willkill07 force-pushed the docs/code-freeze-0.5 branch from cd803bb to 9e8d101 Compare July 3, 2026 02:54
@willkill07 willkill07 self-assigned this Jul 3, 2026

@coderabbitai coderabbitai Bot 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.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 70b7559 and cd803bb.

⛔ Files ignored due to path filters (3)
  • Cargo.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (14)
  • .github/nightly-alpha-branches.yaml
  • Cargo.toml
  • crates/node/package.json
  • crates/python/Cargo.toml
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/observability-plugin/configuration.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • integrations/coding-agents/claude-code/.claude-plugin/plugin.json
  • integrations/coding-agents/codex/.codex-plugin/plugin.json
  • integrations/openclaw/package.json
  • pyproject.toml
  • python/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 as release/<major>.<minor>.

Keep Rust Cargo.toml package names and workspace metadata internally consistent with the rest of the release/package surface.

Matching Cargo.toml should trigger cargo deny check.

Files:

  • crates/python/Cargo.toml
  • Cargo.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.toml
  • Cargo.toml
  • integrations/openclaw/package.json
  • crates/node/package.json
  • pyproject.toml
  • python/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.toml
  • Cargo.toml
  • docs/getting-started/quick-start/python.mdx
  • pyproject.toml
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • python/plugin/pyproject.toml
  • docs/observability-plugin/configuration.mdx
  • docs/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_END except 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.toml
  • Cargo.toml
  • docs/getting-started/quick-start/python.mdx
  • integrations/openclaw/package.json
  • crates/node/package.json
  • pyproject.toml
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • python/plugin/pyproject.toml
  • docs/observability-plugin/configuration.mdx
  • docs/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:

  1. Scope stacks decide where work belongs and which scope-local behavior is visible.
  2. Middleware registries decide what guardrails and intercepts run around managed calls.
  3. Plugins install reusable runtime behavior from configuration.
  4. Events record runtime behavior in ATOF form.
  5. 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 patterns

Prerequisites

Insta...

Files:

  • crates/python/Cargo.toml
  • Cargo.toml
  • docs/getting-started/quick-start/python.mdx
  • integrations/openclaw/package.json
  • crates/node/package.json
  • pyproject.toml
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • python/plugin/pyproject.toml
  • docs/observability-plugin/configuration.mdx
  • docs/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.toml
  • crates/node/package.json
.github/nightly-alpha-branches.yaml

📄 CodeRabbit inference engine (.agents/skills/prepare-code-freeze/SKILL.md)

Update .github/nightly-alpha-branches.yaml to 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.yaml and .github/workflows/nightly-alpha-tag.yaml YAML 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].version as the source of truth for the Rust workspace and Python build versioning, and keep workspace.dependencies.nemo-relay, nemo-relay-adaptive, nemo-relay-pii-redaction, nemo-relay-ffi, and nemo-relay-cli self-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 docs or ./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.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
  • docs/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.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/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 the scripts/ root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work

Files:

  • docs/getting-started/quick-start/python.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
  • docs/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.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
  • docs/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.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
  • docs/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-root package-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.json aligned with the generated package name, entrypoints, and published artifact expectations.

Keep crates/node/package.json's npm package version aligned with the workspace-root package-lock.json.

Files:

  • crates/node/package.json
pyproject.toml

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Keep Python packaging metadata in pyproject.toml consistent 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!

Comment thread crates/python/Cargo.toml Outdated
@willkill07 willkill07 added this to the 0.5 milestone Jul 3, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

License Diff

Compared against origin/main.

Lockfile license changes

Lockfile License Changes

Rust

Added

  • None

Removed

  • None

Updated/Changed

  • None

Node

Added

  • None

Removed

  • None

Updated/Changed

  • None

Python

Added

  • None

Removed

  • None

Updated/Changed

  • None
Status output
[license-diff] selected languages: rust, node, python
[license-diff] generating current inventory
[license-diff] current: generating Rust inventory
[license-diff] current: Rust inventory complete (378 packages)
[license-diff] current: generating Node inventory
[license-diff] current: Node inventory complete (363 packages)
[license-diff] current: generating Python inventory
[license-diff] current: Python inventory complete (105 packages)
[license-diff] current inventory complete
[license-diff] checking out base ref origin/main into a temporary worktree
[license-diff] base: generating Rust inventory
[license-diff] base: Rust inventory complete (378 packages)
[license-diff] base: generating Node inventory
[license-diff] base: Node inventory complete (363 packages)
[license-diff] base: generating Python inventory
[license-diff] base: Python inventory complete (105 packages)
[license-diff] base inventory complete
[license-diff] removing temporary base worktree
[license-diff] comparing inventories
[license-diff] rendering Markdown output
[license-diff] done

Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 force-pushed the docs/code-freeze-0.5 branch from 42cf681 to db7d339 Compare July 3, 2026 03:24
@willkill07 willkill07 merged commit 95af285 into NVIDIA:main Jul 3, 2026
68 of 70 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Maintenance CI or Build or general repository maintenance size:M PR is medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants