What's Changed
Notable Changes
The wandb sync --clean command now exits with code 1 and prints a hint to use wandb clean, which is the replacement.
wandb login now verifies credentials by default. This can be disabled with wandb login --no-verify or programmatically with wandb.login(verify=False).
Added
- Added support for gzip compression of filestream requests, reducing network traffic when logging metrics. It is currently opt-in and requires server support: set
x_file_stream_no_gzip=Falseinwandb.Settingsto enable it. Compression will become the default in a future release (@dmitryduev in #12262) - Added a
--term-timeoutflag towandb agent(@nathancy-wandb in #12246) - Added
run.sync_dir(@timoffex in #12319)
Changed
- The new
wandb cleancommand replaceswandb sync --clean(@timoffex in #12238) - Hardened argument handling in
wandb launchfor the local-process resource so that job-supplied values are always shell-quoted (@nicholaspun-wandb in #12220) - The launch agent now restricts a job's git source URL to https/ssh remotes and pins git's protocol allowlist when fetching it and updating submodules (@nicholaspun-wandb in #12221)
- Response parsing is now faster for many
wandb.Apioperations, including artifact and registry queries (@tonyyli-wandb in #12213) wandb.init()now reports the error it was retrying (such as a network error) when it times out, instead of a generic timeout message. Theinit_timeoutsetting now also bounds the backend's retries during run initialization (@skhanna-cw in #12216)wandb.Api().create_run_queue(),wandb.Api().create_custom_chart(), andwandb.Api().upsert_run_queue()now raiseWandbApiFailedErrorwhen the operation fails on the backend. (@jacobromero in #12307)- Paginated artifact and registry query methods (
Api.artifacts(),Api.artifact_collections(),Api.registries(),Registries.collections(),Registries.versions(),Collections.versions(),Registry.collections(),Registry.versions(),Project.collections()) now perform client-side validation of pagination arguments before attempting to fetch any results (@tonyyli-wandb in #12101) - Ordered registry search now scopes per-registry collection and version queries to the current registry's internal id for more reliable pagination and filtering (@ibindlish in #12188)
Deprecated
wandb sync --sync-tensorboardis deprecated and will be removed in a later release (@timoffex in #12419)
Removed
- Releases no longer include 32-bit Windows (
win32) wheels; use 64-bit Python on Windows (@dmitryduev in #12267)
Fixed
- Registry search
registries(order=...).collections(order=...).versions()now returns artifact versions in registry and/or collection order. (@ibindlish in #12154) - macOS x86_64 wheels now contain x86_64 builds of the
wandb-xpubinary and the Rust parquet library, which previously shipped as arm64 and could not run or be loaded on Intel Macs (@dmitryduev in #12267) wandb.login(verify=True)andwandb login --verifynow verify federated identity (identity token) credentials, which were previously not verified (@dmitryduev in #12294)wandb loginandwandb verifyno longer update the system host settings when failing to login (@jacobromero in #12332)wandb verifynow reports a failed check instead of crashing when an operation still fails after retries (@dmitryduev in #12360)- Calling Sweeps agent with a custom
WANDB_DIRwill now respect it when dumping JSON output (@kelu-wandb in #12344) - Fixed
wandb.Api(overrides={"base_url": ...})failing to authenticate with federated identity (identity token) credentials when the specified server was not the default one, such as a dedicated cloud deployment, unlessWANDB_BASE_URLwas also set (@dmitryduev in #12340) - When using federated identity, the identity token file is now re-read for each access token exchange instead of once at startup, so short-lived identity tokens re-minted to the same path keep working for runs that outlive them (@dmitryduev in #12341)
- When using federated identity, requests now fail immediately with the server's error message when the server rejects the identity token exchange, such as for an invalid or expired identity token. Previously, the rejected exchange was retried until requests timed out with a generic error (@dmitryduev in #12366)
wandb loginvalidates api keys prior to saving to the.netrcfile (@jacobromero in #12347)- The
global_stepmetric created when syncing TensorBoard files is no longer prefixed, liketrain/global_step, so that it is easier to compare training and validation metrics (@timoffex in #12372) - The TensorBoard integration now produces fewer W&B steps by merging data for the same
global_stepinto one W&B step when possible (@timoffex in #12414) wandb syncno longer hangs on a run that set its name, tags, or notes after starting (@dmitryduev in #12380)wandb loginno longer removes or corrupts credentials belonging to other machines in your.netrcfile (@dmitryduev in #12386)- Log messages captured from Python loggers no longer add blank lines to a run's logs (@dmitryduev in #12387)
del run.summary[key]now removes metrics that were logged as nested values, which it previously ignored (@dmitryduev in #12389)
Security
- Debug logs no longer contain CoreWeave cluster credentials (@dmitryduev in #12385)
wandb dockerandwandb docker-runno longer pass your API key on the command line, where other users of the same machine could read it (@dmitryduev in #12443)