Repository navigation
feat(devtools): open a standalone litellm catalog PR before the version bump - #8799
Conversation
Strix Security ReviewWarning This pull request has 9 commits after the last Strix review ( ✅ No open security findings. PR summary: Adds a Phase 0 to `devtools release` that refreshes the LiteLLM model catalog in its own PR before the version bump, adds a `--skip-litellm-catalog-update` flag, and removes the catalog download from the docs-freeze PR. Review summaryThis PR is an internal release-tooling change: I reviewed the new Ruled out (4)
Review 1 on this PR · Reviewed by Strix |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 15844f6. Configure here.
…on bump Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
8e65b3b to
f4d551a
Compare

Related issue
None. Internal release-tooling change.
Summary
What changed
devtools releasegets a new Phase 0 that downloads the LiteLLM model catalog and opens its own PR (chore: update litellm model catalog for vX.Y.Z, branchchore/update-litellm-catalog-vX.Y.Z). It waits for that PR to merge, then pullsmainbefore the version bump starts.--skip-litellm-catalog-updateskips Phase 0. It is carried into the resume hints printed on failure.[docs-freeze]docs PR (_update_docs_and_create_pr).lib/devtools/README.md, thereleasedocstring and thelitellm_catalog_update/scripts/update_litellm_catalog.pydocstrings are updated to match.Why
The catalog JSON (~3 MB, hundreds of changed entries per refresh) was bundled into the docs-freeze PR, which already carries the edge changelogs and a ~770-file
docs/vX.Y.Z/snapshot. That made the catalog change hard to review and tied a model-data update to a docs freeze. Refreshing it was also easy to miss: the last refresh was in the v1.15.31 docs PR, and upstream has since added 214 models, removed 1 and changed 457. A standalone PR makes the diff reviewable, lets it be reverted on its own, and lands the catalog onmainbefore the release commits.New flow (
devtools release X.Y.Z)--skip-litellm-catalog-update, then waits for merge.feat: bump versions to X.Y.ZPR, then waits for merge.docs/vX.Y.Zsnapshot anddocs.jsonfor stable releases; no catalog any more), then tag and GitHub release, PyPI publish, and deployment canary repos.Behavior note:
devtools tagused to refresh the catalog via the docs PR; it no longer does. Onlyrelease(Phase 0) andscripts/update_litellm_catalog.pyrefresh it now.Verification
ruff check,ruff formatandpytest lib/devtools/tests(100 passed) are clean.devtools release 9.9.9 --dry-run --skip-enterprise --no-editshows Phase 0 before Phase 1, and with--skip-litellm-catalog-updateit prints the skip message and goes straight to Phase 1. The new git/gh steps in Phase 0 were not exercised against a real remote, and I did not add a unit test for them.Additional context
The first catalog PR after this lands will drop
eu.anthropic.claude-haiku-4-5-20251001-v1:0from the catalog; worth confirming nothing depends on that ID.🤖 Generated with Claude Code
Note
Medium Risk
Changes release automation and git/gh sequencing; mistakes could block releases or land stale catalog data, but scope is devtools-only with unit tests for Phase 0.
Overview
devtools releasenow runs Phase 0 before the version bump: it refreshes the checked-in LiteLLM model catalog, opens a dedicated PR (chore: update litellm model catalog for vX.Y.Zonchore/update-litellm-catalog-vX.Y.Z), and waits for merge when the file actually changes. Unchanged catalogs skip branch/PR creation;--skip-litellm-catalog-updateskips the phase entirely (including resume hints).The large catalog JSON is no longer bundled into the
[docs-freeze]docs PR—_update_docs_and_create_pronly handles edge changelogs and snapshot/docs.jsonwork. README and module docstrings describe the reordered release flow.Tests: new
test_release_catalog_phase.pycovers no-op vs PR creation and catalog restore on branch-reset failure. The Anthropic import test usesmonkeypatchto evict the completion module instead of mutatingsys.modulesdirectly.Reviewed by Cursor Bugbot for commit f4d551a. Bugbot is set up for automated code reviews on this repo. Configure here.