Skip to content

Forward-merge release/0.1 into main - #150

Closed
rapids-bot[bot] wants to merge 6 commits into
mainfrom
release/0.1
Closed

Forward-merge release/0.1 into main#150
rapids-bot[bot] wants to merge 6 commits into
mainfrom
release/0.1

Conversation

@rapids-bot

@rapids-bot rapids-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown

Forward-merge triggered by push to release/0.1 that creates a PR to keep main up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.

@rapids-bot
rapids-bot Bot requested review from a team as code owners July 28, 2026 23:43
@rapids-bot

rapids-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown
Author

FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the Resolve conflicts option in this PR, follow these instructions https://docs.rapids.ai/maintainers/forward-merger/

IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the /merge comment). Instead, an admin must manually merge by changing the merging strategy to Create a Merge Commit. Otherwise, history will be lost and the branches become incompatible.

zhongxuanwang-nv and others added 3 commits July 29, 2026 10:12
#### Overview

Slim the Python adapter dependency boundary for the `release/0.1` line without changing adapter behavior.

- `nemo-fabric` remains a metadata-only package that unconditionally installs the exact matching `nemo-fabric-runtime`.
- Root harness extras delegate to the matching adapter package's `harness` extra.
- Bare adapter distributions contain only adapter-owned runtime dependencies.
- Every adapter provides `harness` and `full`; only Deep Agents and Hermes provide the Python `relay` extra. Claude and Codex continue to use the separately installed `nemo-relay` CLI.
- Wrapped harness packages required by repository tests remain in the non-published `adapter-tests` dependency group.

#### Details

The supported install modes are now explicit:

- `nemo-fabric[<harness>]`: Runtime, adapter, and supported harness dependencies in one environment.
- `nemo-fabric` plus a bare adapter package: Runtime and adapter with an existing host-managed harness.
- `nemo-fabric-adapters-<adapter>[harness]`: Adapter and supported harness without Runtime, for a separate adapter interpreter.
- Bare `nemo-fabric-adapters-<adapter>`: Adapter-owned dependencies only.
- Adapter `full`: All package-installable dependencies; for Claude and Codex this equals `harness` because Relay is an external CLI.

The README, package description, install guide, adapter guides, Harbor examples, CI, consumer skill, and maintainer packaging skills now describe the same matrix. Metadata tests guard the root-to-adapter delegation and the exact adapter dependency boundaries.

#### Validation

- Focused metadata, README, and Harbor checks: `55 passed`
- Full Python suite: `529 passed, 15 skipped`
- Latest upstream Hermes streaming coverage plus metadata checks: `21 passed`
- Root and all adapter lockfiles: `uv lock --check`
- `just build-python`
- `cargo check -p fabric-python --locked`
- `just docs` (all checks passed; unauthenticated redirect check skipped with the expected warning)
- `just wheels`, followed by root and adapter wheel `METADATA` inspection
- License diff against `upstream/release/0.1`: no Rust or Python additions, removals, or changes
- Full `pre-commit run --all-files`
- `just --fmt --check`
- `git diff --check`

#### Where should the reviewer start?

Start with `pyproject.toml`, the four adapter `pyproject.toml` files, and `tests/adapters/test_adapter_package_metadata.py`. Then review `docs/getting-started/install.mdx`, `.github/workflows/ci_python.yml`, and `.agents/skills/contribute-adapter/SKILL.md`.

The branch is rebased onto the latest `release/0.1`. It includes and preserves the adapter configuration changes from #117.

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

- Closes [FABRIC-125](https://linear.app/nvidia/issue/FABRIC-125/slim-adapter-runtime-dependencies)
- Relates to #117

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

## Summary by CodeRabbit

* **Documentation**
  * Clarified installation options for runtime, adapters, harnesses, and Relay integrations.
  * Added supported Python version guidance and separate-environment setup instructions.
  * Updated Hermes, Claude, Codex, and Deep Agents quick starts and deployment scenarios.
  * Improved Harbor setup and command examples, including version-alignment guidance.

* **Bug Fixes**
  * Improved Hermes configuration writing when YAML support is unavailable.
  * Clarified Relay CLI requirements and adapter-specific integration behavior.

* **Tests**
  * Added validation for package dependency boundaries, installation metadata, and adapter configuration behavior.

Authors:
  - Zhongxuan (Daniel) Wang (https://github.com/zhongxuanwang-nv)

Approvers:
  - Anuradha Karuppiah (https://github.com/AnuradhaKaruppiah)
  - David Gardner (https://github.com/dagardner-nv)

URL: #105
Signed-off-by: Zhongxuan (Daniel) Wang <daniewang@nvidia.com>
Signed-off-by: Anuradha Karuppiah <26330987+AnuradhaKaruppiah@users.noreply.github.com>
Signed-off-by: Zhongxuan Wang <daniewang@nvidia.com>
Comment thread README.md
AjayThorve and others added 3 commits July 29, 2026 10:53
This reverts commit 557b629.

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
This reverts commit 16546c8, reversing
changes made to 68ee72b.

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
## Summary

- Rewrite exact internal dependency pins that include extras, such as `nemo-fabric-adapters-hermes[harness]`.
- Move the Python version rewrite into a testable script and add regression coverage for extras and environment markers.

## Root cause

The release regex matched bare package names only, so RC builds updated package versions but left root extras pinned to the stable version. Installing a root extra could therefore request an adapter version that was never published.

## Validation

- `just --set no_uv true test-python` — 531 passed, 14 skipped
- `cargo check -p fabric-python --locked`
- `just wheels`
- Simulated `v0.2.0-rc5` stamping and verified the built root wheel pins all adapter extras to `0.2.0rc5`


## Summary by CodeRabbit

* **Chores**
  * Improved the Python package release version update workflow by switching to a dedicated CLI utility.
  * Automatically synchronizes versions and internal dependency pins across the main project and adapter packages.
  * Enforces that the runtime project keeps dynamic versioning and validates version/pin consistency.
* **Tests**
  * Added coverage ensuring version and internal pin updates apply to adapter projects, including optional dependency extras and environment markers.

Authors:
  - Anuradha Karuppiah (https://github.com/AnuradhaKaruppiah)

Approvers:
  - David Gardner (https://github.com/dagardner-nv)
  - Zhongxuan (Daniel) Wang (https://github.com/zhongxuanwang-nv)

URL: #154
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.

3 participants