wandb 0.30.0 (9 Sep 2026): InternalApi/PublicApi aliases and internal modules removed—use wandb.Api(); legacy wandb sync options gone; deprecations for wandb.api / ensure_configured / sandbox. Python>=3.10, protobuf>=5. Not Aim CVE or MLflow pickle. Not investment advice.
Weights & Biases wandb 0.30.0 (GitHub release, 9 September 2026) is the after-work hook if you track experiments from a laptop or small training box—not a security-CVE dump. This note covers the breaking API cleanup: removed aliases/modules, wandb sync CLI changes, and deprecations. PyPI requires Python ≥ 3.10 and protobuf ≥ 5 (!=5.28.0,!=5.29.0,<8). It does not bundle Aim CVE or MLflow pickle Hub posts, and is not investment advice.
The only course CTA is Introduction to Python Programming.
| Removed | Use instead |
|---|---|
wandb.InternalApi, wandb.PublicApi, wandb.apis.PublicApi aliases | wandb.Api() |
wandb.apis.internal and wandb.sdk.internal.internal_api modules | wandb.Api() |
Legacy wandb sync flags | wandb sync with no args (not --sync-all); --job-type (not --job_type) |
See wandb sync --help and the SDK release notes.
wandb.api and wandb.ensure_configured() → check login with wandb.login(prompt=False), then use wandb.Api() for everything else.wandb.sandbox / wandb beta sandbox → use the cwsandbox package directly.pip install -U "wandb==0.30.0"
python -c "import wandb; print(wandb.__version__)"
1. Prefer the public Api client
import wandb
logged_in = wandb.login(prompt=False)
api = wandb.Api() # not InternalApi / PublicApi aliases
print("logged_in:", logged_in)
2. Sync offline runs without legacy flags: wandb sync (no --sync-all); pass --job-type if you need a job type.
3. Grep your repo for InternalApi, PublicApi, ensure_configured, wandb.apis.internal, --sync-all, and --job_type.
Stop after one of three. Docs: W&B, release notes.
Pin wandb==0.30.0, replace removed aliases with wandb.Api(), and fix one wandb sync invocation. Environment stuck? Introduction to Python Programming.