ci: build CI image against nvidia-resiliency-ext main - #6157
Draft
hexinw-nvidia wants to merge 1 commit into
Draft
ci: build CI image against nvidia-resiliency-ext main#6157hexinw-nvidia wants to merge 1 commit into
hexinw-nvidia wants to merge 1 commit into
Conversation
Add an imperative uv pip install layer to Dockerfile.ci.dev that replaces the locked NVRx 0.6.0 wheel with upstream main, so the whole CI suite runs against the latest NVRx. Done via 'uv pip install' rather than pyproject.toml + uv.lock because every 'uv sync' in this repo passes --locked, which rejects a pyproject change without a matching relock. Installed with dependencies (NVRx main adds langchain-core, mcp, logsage, uvicorn and slack-sdk over 0.6.0), using the same override-dependencies trick as pyproject.toml to keep the base image's torch/torchvision/triton intact, plus the pydantic<2.14 cap that langchain_core requires. EXPERIMENT ONLY -- not intended to merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Hexin Wang <hexinw@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Contributor
Author
|
/ok to test 64a6621 |
asolergi-nv
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Builds the CI image against upstream
nvidia-resiliency-extmain instead of the locked0.6.0PyPI wheel, so the full CI suite runs against the latest NVRx.Experiment only — not intended to merge.
How
A single
uv pip installlayer appended to themainstage ofdocker/Dockerfile.ci.dev.This is deliberately not done via
pyproject.toml+uv.lock. Everyuv syncin this repo passes--locked(Dockerfile.ci.dev:65,Dockerfile.ci.lts:51,docker/common/install.sh:141, andcicd-main.yml:355in the linting job), which rejects apyproject.tomlchange without a matching relock. An imperative install sidesteps all four gates.Overridable via
--build-arg NVRX_REF=<sha|branch|tag>; defaults tomain.Why install with dependencies
NVRx
mainadds a substantial set of runtime dependencies over the pinned0.6.0:langchain-core,langchain-openai,mcp,logsage,setproctitle,uvicorn[standard],pydantic-settings,slowapi,slack-bolt,slack-sdk,fastapi--no-depswould install NVRx main and leave it un-importable, so the layer installs with dependencies and guards the two known hazards:override-dependenciestrick frompyproject.toml:194-198(torch; sys_platform == 'never', plustorchvision/triton) so NVRx'storch>=2.3.0cannot pull a PyPI CPU wheel over the base image's CUDA build.<2.14. Per the note atpyproject.toml:209-212, pydantic 2.14 breakslangchain_core's module-levelRunnablePassthrough()instantiation. That was previously a transitive concern; NVRx main depends onlangchain-coredirectly, making it an import-time failure.The layer ends with
uv pip freeze | grep -i resiliencyand an import smoke test. Sincemainfloats, the container build log is the only record of which NVRx commit was actually tested.Test plan
Labelled
Run functional tests(scope=mr-github,n_repeat=5, golden-value comparison) rather thanRun tests. NVRx owns the async-checkpoint and in-process-restart paths, and this jumps a dozen dependency versions — the lightweight 4-step lane would not surface a numerics or checkpointing regression.Existing
gpt3_mcore_te_tp2_pp1_gdn_no_nvrx_{sync,async,async_mcore}cases uninstall NVRx in theirBEFORE_SCRIPTand are unaffected.🤖 Generated with Claude Code