Back to Litellm

Build & Publish `litellm-proxy-extras`

litellm-proxy-extras/build_and_publish.md

1.84.0-dev.22.9 KB
Original Source

Build & Publish litellm-proxy-extras

This runbook covers building and publishing a new version of the litellm-proxy-extras PyPI package. For use by litellm engineers only.

Prerequisites

  • All schema.prisma files are in sync (see migration_runbook.md Step 0)
  • Migration has been generated and committed
  • You are in the litellm-proxy-extras/ directory

Step 1: Bump the Version

Use commitizen to automatically bump the version across all files:

bash
cd litellm-proxy-extras
cz bump --increment patch

This will automatically:

  • Bump the version in pyproject.toml (both [project].version and [tool.commitizen].version)
  • Update the version in ../pyproject.toml (root)
  • Create a git commit with the version bump

Then skip to Step 3 (Clean Old Artifacts).

Option B: Manual Version Bump

Update the version in pyproject.toml:

bash
cd litellm-proxy-extras

# Check current version
grep 'version' pyproject.toml

Edit pyproject.toml and bump the version (both [project].version and [tool.commitizen].version).

Step 2: Update Version in the Root Package Metadata (Manual Only)

After bumping the version in litellm-proxy-extras/pyproject.toml, you must also update the version reference in the root pyproject.toml:

FileLine to update
pyproject.toml (root)litellm-proxy-extras==X.Y.Z in [project.optional-dependencies].proxy
bash
# From the repo root — replace OLD with NEW version
sed -i '' 's/litellm-proxy-extras==OLD/litellm-proxy-extras==NEW/' pyproject.toml

Do NOT skip this step. The main litellm package pins the extras version — if you don't update these, users will install the old version.

Step 3: Clean Old Artifacts

bash
rm -rf dist/ build/ *.egg-info

Step 4: Build the Package

bash
uv build

This creates .tar.gz and .whl files in the dist/ directory.

Verify the build output:

bash
ls -la dist/

Step 5: Upload to PyPI

bash
uv tool run --from 'twine==6.2.0' twine upload dist/*

You will be prompted for your PyPI API token:

Enter your API token: pypi-...

Use __token__ as the username and your PyPI API token as the password.

Quick Reference (Copy-Paste)

bash
cd litellm-proxy-extras
rm -rf dist/ build/ *.egg-info
uv build
uv tool run --from 'twine==6.2.0' twine upload dist/*

Do you want to build and publish a new litellm-proxy-extras package? (y/n)

If yes, run the following commands in order:

bash
cd litellm-proxy-extras
rm -rf dist/ build/ *.egg-info
uv build
uv tool run --from 'twine==6.2.0' twine upload dist/*

When twine upload runs, enter your PyPI credentials:

  • Username: __token__
  • Password: (paste your PyPI API key)

If no, you're done — no package publish needed.