Skip to content

fix(ci): pin hf-xet<1.5 to fix model download failures#9203

Open
VincyZhang wants to merge 1 commit intoai-dynamo:mainfrom
VincyZhang:fix/pin-hf-xet-version
Open

fix(ci): pin hf-xet<1.5 to fix model download failures#9203
VincyZhang wants to merge 1 commit intoai-dynamo:mainfrom
VincyZhang:fix/pin-hf-xet-version

Conversation

@VincyZhang
Copy link
Copy Markdown
Contributor

@VincyZhang VincyZhang commented May 6, 2026

Problem

hf-xet 1.5.0 (released 2026-05-06) deprecated the hf_xet.download_files() API that huggingface_hub's snapshot_download() relies on internally. This causes all tests requiring model pre-download to fail with:

RuntimeError: Failed to pre-download required Hugging Face models:
hf_xet.download_files() is deprecated. Use XetSession().new_file_download_group().start_download_file() instead.

Affected models: Qwen/Qwen2-VL-2B-Instruct, Qwen/Qwen3-0.6B, Qwen/Qwen2.5-VL-7B-Instruct, deepseek-ai/deepseek-llm-7b-base

Result: 31 test errors (all from fixture predownload_models in tests/conftest.py:389)

Root Cause

hf-xet is unpinned in container/deps/requirements.test.txt. The newly released 1.5.0 broke backward compatibility with current huggingface_hub by converting a deprecation warning into a hard error.

Fix

Pin hf-xet<1.5 until huggingface_hub releases a version compatible with the new XetSession API.

Verification

  • Tested locally: pip install hf-xet<1.5 && python -c "from huggingface_hub import snapshot_download; snapshot_download('Qwen/Qwen3-0.6B', ignore_patterns=['*.safetensors'])" succeeds
  • Previous CI runs (before 2026-05-06) with hf-xet 1.4.3 passed model downloads successfully

Open in Devin Review

Summary by CodeRabbit

  • Chores
    • Updated test environment dependencies to ensure compatibility with recent API changes.

hf-xet 1.5.0 (released 2026-05-06) deprecated and broke the
hf_xet.download_files() API that huggingface_hub's snapshot_download()
relies on internally. This causes all tests requiring model pre-download
to fail with:

  RuntimeError: Failed to pre-download required Hugging Face models:
  hf_xet.download_files() is deprecated. Use
  XetSession().new_file_download_group().start_download_file() instead.

Pin hf-xet<1.5 until huggingface_hub releases a compatible version
that uses the new XetSession API.

Signed-off-by: Zhang, Wenxin <[email protected]>
Signed-off-by: VincyZhang <[email protected]>
@VincyZhang VincyZhang requested review from a team as code owners May 6, 2026 08:05
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 6, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

👋 Hi VincyZhang! Thank you for contributing to ai-dynamo/dynamo.

Just a reminder: The NVIDIA Test Github Validation CI runs an essential subset of the testing framework to quickly catch errors.Your PR reviewers may elect to test the changes comprehensively before approving your changes.

🚀

@github-actions github-actions Bot added external-contribution Pull request is from an external contributor container labels May 6, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 6, 2026

Walkthrough

The test requirements file pins the hf-xet dependency to versions below 1.5, replacing an unpinned entry. An explanatory comment documents that the pin is necessary due to XetSession API changes.

Changes

Test Dependency Pin

Layer / File(s) Summary
Dependency Specification
container/deps/requirements.test.txt
hf-xet is pinned to <1.5 with a comment explaining the constraint is due to XetSession API compatibility.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: pinning hf-xet<1.5 to fix model download failures in CI.
Description check ✅ Passed The description comprehensively covers the problem, root cause, fix, and verification, exceeding the template requirements with detailed context and evidence.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
container/deps/requirements.test.txt (1)

19-20: ⚡ Quick win

Consider tracking the pin removal with a GitHub issue.

Since this pin is temporary and should be removed once huggingface_hub supports the new XetSession API, consider creating a GitHub issue to track this future work. You could then reference it in the comment (e.g., # ... new XetSession API, see GH-XXXX).

🤖 Prompt for 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.

In `@container/deps/requirements.test.txt` around lines 19 - 20, The requirements
pin for "hf-xet<1.5" is temporary; create a GitHub issue to track removal once
huggingface_hub supports the new XetSession API and update the inline comment
next to the hf-xet<1.5 entry to reference that issue (e.g., "# For faster model
downloads (pin <1.5 until huggingface_hub adapts to new XetSession API, see
GH-XXXX)"), so future maintainers can find the follow-up work easily.
🤖 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.

Nitpick comments:
In `@container/deps/requirements.test.txt`:
- Around line 19-20: The requirements pin for "hf-xet<1.5" is temporary; create
a GitHub issue to track removal once huggingface_hub supports the new XetSession
API and update the inline comment next to the hf-xet<1.5 entry to reference that
issue (e.g., "# For faster model downloads (pin <1.5 until huggingface_hub
adapts to new XetSession API, see GH-XXXX)"), so future maintainers can find the
follow-up work easily.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f6d1f8f8-d7ef-4f5a-8bd5-57c870942acd

📥 Commits

Reviewing files that changed from the base of the PR and between 87c5090 and f2df824.

📒 Files selected for processing (1)
  • container/deps/requirements.test.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

container external-contribution Pull request is from an external contributor fix size/XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants