chore(deps): update machine-learning - #29123
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/machine-learning
branch
11 times, most recently
from
June 21, 2026 22:27
ef10457 to
f7542f2
Compare
renovate
Bot
force-pushed
the
renovate/machine-learning
branch
12 times, most recently
from
July 7, 2026 07:48
f59745a to
99c9566
Compare
renovate
Bot
force-pushed
the
renovate/machine-learning
branch
2 times, most recently
from
July 7, 2026 20:03
2967f37 to
687d65a
Compare
renovate
Bot
force-pushed
the
renovate/machine-learning
branch
15 times, most recently
from
July 22, 2026 08:22
99223a4 to
174ff65
Compare
renovate
Bot
force-pushed
the
renovate/machine-learning
branch
14 times, most recently
from
July 28, 2026 20:42
d934308 to
445b150
Compare
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.
This PR contains the following updates:
1.19.0→1.29.01.30.02.44.1→2.46.42.46.52.1.0→2.3.12.4.6→2.5.22.5.31.26.0→1.29.01.26.0→1.29.01.25.0→1.27.14.13.0.92→4.14.0.943.11.9→3.12.02.13.4→2.13.59.0.3→9.1.1f82c964→9d2e555e2d3af7→528257d20ec607→35d3a4a3.8.1→3.9.26.0.12.20260518→6.0.12.202608156.0.12.202609062.33.0.20260518→2.33.0.202607122.33.0.20260906Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
huggingface/huggingface_hub (huggingface-hub)
v1.29.0: [v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixesCompare Source
⚡ Xet downloads no longer make one API call per file
Since v1.19.0, downloading a repository with
hf_xeteagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leavingsnapshot_downloadappearing stalled for minutes before failing with a429 Too Many Requests. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.🪣 Change bucket visibility after creation
Bucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new
HfApi.update_bucket_settings()method (also exported asupdate_bucket_settings) or from the CLI withhf buckets settings, which takes either--privateor--public.📚 Documentation: Buckets guide
🔒 Security fixes
Two security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to
hf buckets sync/sync_bucket(): when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (/etc/cron.d/evil,../../../../etc/passwd, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second,load_state_dict_from_filecould fall back to pickle deserialization for a shard named exactly.safetensors:Path.suffixreturns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which usesstr.endswith) was still routed totorch.load(weights_only=False). A shared_is_safetensors()helper now guarantees both code paths use the same matching semantics, so an index-declared "safetensors" checkpoint can never be loaded with pickle._is_safetensors) by @moon-bot-app[bot] in #4737🤖 Inference
stream=Truewhen a non-streaming inference call fails with 504 by @moon-bot-app[bot] in #4744🖥️ CLI
🔧 Other QoL Improvements
huggingface_hub[mcp]by @Wauplin in #4735labels/tagsfrom docstrings and signature by @Wauplin in #4745🐛 Bug and typo fixes
📖 Documentation
🏗️ Internal
v1.28.0: [v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and moreCompare Source
🔎 Discover deployable hardware with
hf endpoints hardwareDeploying an Inference Endpoint requires five hardware flags (
--vendor,--region,--accelerator,--instance-type,--instance-size) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The newhf endpoints hardwarecommand lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK vialist_inference_endpoints_hardware(), which flattens the API response intoInferenceEndpointHardwareobjects you can filter programmatically.hf endpoints hardwareto list available instances by @hanouticelina in #4672🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints
custom_imagenow accepts the engine-specific container types supported by the API: key the dictionary with the engine name (vLLM,sGLang,tgi,tei,llamacpp,hfServe, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-levelurlis forwarded to the API untouched, so engines added to the API later will work without upgradinghuggingface_hub, andupdate_inference_endpointnow handles the same payload shapes ascreate_inference_endpoint. On the CLI,hf endpoints deployandhf endpoints updategain--engine,--tensor-parallel-sizeand--data-parallel-size, andupdatealso accepts--custom-image,--health-routeand--port. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \ --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \ --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8 # Retune a running endpoint $ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2💔 Breaking change:
huggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYSis removed. It was never exported at the package root nor documented, but code reading it directly will now get anAttributeError.custom_imageby @hanouticelina in #4671hf endpoints deployandupdateby @moon-bot-app[bot] in #4661🤖 Inference
🖥️ CLI
hf extensionsoff the metered GitHub REST API by @hanouticelina in #4659🐛 Bug and typo fixes
model.taskinstead of sending null on create by @hanouticelina in #4701📖 Documentation
🏗️ Internal
v1.27.0: [v1.27.0] Automatichf-cliskill install, engine flags for Inference Endpoints & moreCompare Source
🤖 The
hf-cliskill installs itself and stays in syncThe
hf-cliskill teaches AI agents how to use thehfCLI, but until now you had to know it existed and install it by hand. The standalone installers (bashandPowerShell) now install it globally by default, pass--exclude-skill/-ExcludeSkillto skip — andhf updaterefreshes it afterwards, without ever bringing it back if you opted out or removed it. Anyhfcommand also hints, at most once a day, when the skill is missing or was generated by anotherhfversion. The hint is purely local, never installs anything on its own, and is silenced byHF_HUB_DISABLE_UPDATE_CHECK=1.⚙️ Engine flags for Inference Endpoints, at deploy time and after
--container-command/--container-argsno longer require--custom-image. That gate was conservative CLI scoping, not an API constraint:model.commandandmodel.argsare top-level fields of the endpoint payload and apply to managed engine images too, which is how the vLLM engine docs recommend passing engine flags. They can now also be changed after deploy —hf endpoints updategained both flags, andHfApi.update_inference_endpoint/InferenceEndpoint.updatethe matchingcontainer_command/container_argsparameters. Values replace rather than append: pass an empty string to reset to the image default, or omit the flag to leave it untouched.--health-routeand--portstill require--custom-image, since they only exist on the custom image payload.🚀 Baseten joins the inference providers
Baseten is now supported for the
conversationaltask. It serves an OpenAI-compatible chat completions API, so there are no provider-specific quirks: target it withprovider="baseten"and your own key, or let auto-routing pick it for any model already mapped on the Hub.🔧 Other QoL Improvements
regiontoExpandSpaceProperty_Tby @hanouticelina in #4641 — the Hub addedregionas an expandable property for Spaces; it is now accepted byspace_info/list_spacesand typed onSpaceInfoasLiteral["us", "eu"] | None— docsmodelfirst in conversational payloads by @moon-bot-app[bot] in #4618 — routers can now resolve the provider from a small prefix instead of buffering a whole payload of base64 images. The resulting dicts are equal, only the key order changes🐛 Bug and typo fixes
prefixlexically, so in a bucket holdinglogs_existing/but nologs/,exists(".../logs/new.txt")raisedKeyErrorandls(".../logs")could return the unrelated sibling. Listings are now filtered on path-component boundariesblobs/(Windows copies, or files created by the user inside a snapshot dir) were deleted a second time as blobs, logging aFileNotFoundErrortraceback each. Reported freed size is unchanged, and per-path delete lines moved todebuggc.collect(); vLLM had to monkey-patch this. Also fixes a v1.0 regression wherehttp_backoffretried on an httpx client already closed by a previousConnectError🏗️ Internal
23dc84bby @mishig25 in #4617v1.26.1Compare Source
v1.26.0: [v1.26.0] Resolve revisions only once, security hardening, and resource groups for Jobs & CollectionsCompare Source
📌 Pin a revision once with
resolve_revisionLibraries that download many files one by one (config, weights, tokenizer, processor, ...) had to resolve
revision="main"into a commit hash on every call — costing one HTTP request per file and risking two calls landing on two different commits if the repo is updated in between. The newHfApi.resolve_revisionresolves the revision once and returns aResolvedRevision: astrsubclass whose value stays the user-facing revision (so error messages keep saying"main") while its.resolvedattribute holds the commit hash. Download helpers (hf_hub_download,snapshot_download,get_cached_repo_tree) detect it and use the commit hash directly, guaranteeing every file comes from the same commit. The mapping is also written to therefs/folder of the cache, so later runs in offline mode transparently fall back to the cached value.📚 Documentation: Manage the cache — Pin a revision (advanced)
🔒 Security hardening for downloads and sandboxes
This release ships two security fixes. First, downloading or uploading to a
--local-dirnow rejects absolute, drive-relative, root-relative, UNC and..-traversal filenames on all platforms, interpreting each name under both POSIX and Windows rules (refs CVE-2026-15717). Previously only a Windows-only..\check existed, so a malicious repo could write files outside the target directory on Windows clients — and even leak a NetNTLMv2 hash via UNC paths. Legitimate repo filenames never contain such segments, so real downloads are unaffected; note that exotic names likefolder/..\..\..\file, previously tolerated on Linux, are now rejected everywhere. Second,Sandbox.createno longer injects your HF token into the job environment to download thesbx-serverbinary: the bucket is public, so the bootstrap now downloads it anonymously and no HF credential ever lands in the sandbox unless you explicitly opt in withforward_hf_token=True.🗂️ Resource groups for Jobs and Collections
Organization resource groups are now supported across the client. For collections,
create_collectionaccepts an optionalresource_group_id, and the newupdate_collection_resource_groupmethod wraps the dedicated Hub endpoint to assign a collection to a resource group afterwards (passingNoneremoves it). For Jobs,run_job,run_uv_jobandcreate_scheduled_jobaccept aresource_group_idparameter, mirrored by a--resource-group-idoption on thehf jobs run,hf jobs uv runandhf jobs scheduled runcommands. Beyond access control within an organization, resource groups are also used for cost attribution and per-group spending limits.📚 Documentation: Collections reference, CLI reference
📊 Job names, front and center in the CLI
Job names are now much easier to work with from the terminal.
hf jobs ls(andhf jobs scheduled ls) display a dedicatedNAMEcolumn, and a new--namefilter acts as a shortcut for--label name=NAME. The name is also surfaced as a top-level field inhf jobs inspectand in command results, instead of only living insidelabels— where it remains for compatibility.📚 Documentation: Run and manage Jobs
📖 Documentation
or) translation of the index, installation and quick-start pages by @indrajeetapache in #4454/tm/to/ta/(correct ISO 639-1 code)🐛 Bug and typo fixes
Unable to parse string as hex hash valueon gated repos without content accessheader is not json-encoded stringtoken=Falseincreate_inference_endpoint_from_cataloginstead of silently ignoring it by @ckarnell in #4605UnicodeEncodeErroron Windows when output is redirected or piped~/model.binno longer raiseFileNotFoundErroron upload🏗️ Internal
v1.25.1Compare Source
v1.25.0: [v1.25.0] Auto-named Jobs, smarter progress bars & cache diagnosticsCompare Source
🏷️ Auto-named Jobs on creation
Jobs now get an automatic
namewhen you don't provide one explicitly, derived from the Docker image (or UV script) plus a short hash of the command line. This means reruns of the same command share a consistent name, while different commands get distinct names — making it much easier to find and group related jobs in the UI or CLI. Names follow the server-side character rules::,/and.in image tags are replaced with-sopython:3.12 foo --trucbecomespython-3-12-7c6db949. Explicit--namestill takes precedence.📚 Documentation: Jobs guide, CLI guide
🔧 Other QoL Improvements
📖 Documentation
🐛 Bug and typo fixes
🏗️ Internal
v1.24.0: [v1.24.0] Name your Jobs! (and download fixes)Compare Source
📊 Name your Jobs!
Jobs on the Hub now support an optional
--nameflag on the CLI and anameparameter on the Python API (run_job,run_uv_job,create_scheduled_job,create_scheduled_uv_job). Names are stored as thenamelabel and make Jobs easier to find and identify in the UI. You can also name an existing Job usinghf jobs labels <job_id> --name my-job. Names are optional and do not need to be unique.📚 Documentation: CLI guide, Jobs guide
📖 Documentation
The README has been completely refreshed to put the
hfCLI first. The standalone installer (curl/PowerShell) and a terminal quick start — coveringauth login,models ls,download,upload, andjobs run— now appear before the Python library section. A new For AI agents section introduceshf skills addfor Codex, Cursor, OpenCode, Claude Code, and other AI tools. The Python content remains intact under the renamed Use the Python library heading, with refreshed example models and a corrected tagline ("The official CLI and Python client for the Hugging Face Hub").🐛 Bug and typo fixes
🏗️ Internal
v1.23.0: [v1.23.0] Space templates, CLI extension updates & smoother Xet downloadsCompare Source
🚀 Create Spaces from templates
You can now seed a new Space from one of the official Hub templates (JupyterLab, a Gradio chatbot, a Streamlit app, etc.) instead of starting from an empty repo. List what's available with the new
list_space_templates()API or thehf spaces templatesCLI command, then pass a template'srepo_id(or its short name) tocreate_repo(..., space_template=...)orhf repos create --type space --template. The Space SDK is inferred from the template, and templates recommended as private (like JupyterLab) are created privately by default unless you explicitly choose a visibility.🔌 Update installed CLI extensions
A new
hf extensions updatecommand brings your installed CLI extensions to their latest published version on GitHub. Pass a name to update a single extension, or run it with no argument to check every installed extension and update the ones that are behind. Updates are applied in place — Python extensions reuse their existing venv and binary extensions are overwritten — so a failed update no longer leaves the extension uninstalled, and extensions that are already up to date are simply skipped.hf extensions updatecommand by @Wauplin in #4496📶 Smoother Xet download progress with dual bars
Xet downloads now show two progress bars so you can tell a transfer is alive even on a slow connection. The transfer bar advances as bytes arrive over the network, while the reconstruction bar tracks real progress as buffered chunks are written to disk — previously the single bar could sit at 0% for a long time while data was actually arriving. The dual bars are wired into single-file downloads (
hf_hub_download),snapshot_download(where parallel file downloads feed the repo-level transfer and reconstruction bars), thehf downloadCLI, and bucket downloads.🤖 Always up-to-date, offline
hf-cliskillhf skills addandhf skills updatenow generate the built-inhf-cliskill locally from your installed CLI version instead of downloading it from the marketplace bucket. The installedSKILL.mdis therefore always in sync with the CLI you're running, and installing or updating thehf-cliskill works fully offline — the marketplace is only contacted when you install another managed skill. As defense-in-depth against path traversal, skill names coming from the marketplace payload are now validated before any filesystem work.🖥️ CLI
hf models lsby inference provider by @moon-bot-app[bot] in #4497 — docs🔧 Other QoL Improvements
get_cached_repo_treeutility by @Wauplin in #4513 — docs📖 Documentation
🐛 Bug and typo fixes
snapshot_downloadsilently skipped files on Windows🏗️ Internal
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.