litellm/.github/workflows
Yuneng Jiang 3d55afe38b
[Infra] Packaging: Relax Core Runtime Pins To Ranges
The 12 core `[project.dependencies]` entries in pyproject.toml were exact
`==` pins, a side effect of the Poetry → uv migration. This forces every
downstream package that lists litellm as a dependency to downgrade common
runtime libraries (openai, pydantic, aiohttp, click, jsonschema, ...) to
the exact versions we ship. Customers have flagged this as a coexistence
blocker.

Switch to lower-bounded ranges with upper bounds where the upstream
package is pre-1.0 or has a known breaking-major-version policy.
Reproducibility for our Docker proxy and CI continues to come from
`uv.lock`, which is regenerated here as a metadata-only diff (no
resolved versions or hashes change).

Inspired by #26157 (which got stranded on `litellm_oss_staging_04_21_2026`
when the forward-merge to internal staging in #26216 was closed). Floors
in this PR are tighter than #26157's: they were validated by installing
litellm at `--resolution=lowest-direct` and importing the openai-namespace
symbols the codebase actually uses.

Floor highlights vs #26157:
- openai >= 2.20 (was 2.0) — Responses API symbols + `Omit` need a 2.x mid-range floor
- httpx >= 0.28, < 1.0 (was no upper) — pre-1.0
- importlib-metadata >= 8.0 (was 6.0) — stay in tested major
- tokenizers >= 0.20, < 1.0 (was 0.19, no upper) — pre-1.0
- aiohttp >= 3.10, < 4.0 (was no upper) — bound major
- pydantic >= 2.5, < 3.0 — kept
- All other floors: keep tested major, add upper bound

Adds a `check-dependency-floors.yml` GitHub Actions workflow that
installs litellm at `--resolution=lowest-direct` on Python 3.10 and 3.13
and import-checks every openai symbol the codebase uses, so a future
floor regression fails fast in CI rather than silently in the field.
2026-05-05 15:45:13 -07:00
..
_test-unit-base.yml build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
_test-unit-services-base.yml [Infra] Stop attaching push-only postgres workflows to a GHA environment 2026-04-23 16:32:18 -07:00
auto_update_price_and_context_window_file.py only add/update vercel ai gateway models 2025-08-04 17:22:36 -07:00
auto_update_price_and_context_window.yml build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
check_duplicate_issues.yml [Infra] Flip remaining CI jobs to Python 3.12 2026-04-22 21:26:19 -07:00
check-dependency-floors.yml [Infra] Packaging: Relax Core Runtime Pins To Ranges 2026-05-05 15:45:13 -07:00
check-schema-sync.yml chore: fixes 2026-04-05 01:30:57 -07:00
codeql.yml chore: fixes 2026-04-05 01:30:57 -07:00
codspeed.yml build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
create_daily_staging_branch.yml chore: fixes 2026-04-05 01:30:57 -07:00
create-release-branch.yml ci(release): accept PEP 440 tag forms in create-release workflow 2026-04-28 19:33:18 -07:00
create-release.yml [Fix] Release Workflow: Detect SemVer-Style Pre-Release Dev Tags 2026-04-30 23:51:04 -07:00
guard-fork-dependencies.yml ci: add supply-chain guard to block fork PRs that modify dependencies 2026-04-25 18:46:50 +00:00
guard-main-branch.yml Point contributors toward litellm_oss_branch in guard error messages 2026-04-14 18:41:59 -07:00
helm_unit_test.yml chore: fixes 2026-04-05 01:30:57 -07:00
issue-keyword-labeler.yml chore: fixes 2026-04-05 01:30:57 -07:00
label-component.yml chore: fixes 2026-04-05 01:30:57 -07:00
llm-translation-testing.yml [Infra] Flip remaining CI jobs to Python 3.12 2026-04-22 21:26:19 -07:00
publish_to_pypi.yml build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
read_pyproject_version.yml chore: fixes 2026-04-05 01:30:57 -07:00
README.md build(github/manual_pypi_publish.yml): manual workflow to publish pip package - used for pushing dev releases (#12985) 2025-07-25 09:26:47 -07:00
results_stats.csv (fix) results_stats 2024-03-13 17:55:20 -07:00
run_llm_translation_tests.py build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
run_observatory_tests.yml chore: fixes 2026-04-05 01:30:57 -07:00
scan_duplicate_issues.yml [Infra] Flip remaining CI jobs to Python 3.12 2026-04-22 21:26:19 -07:00
scorecard.yml chore: fixes 2026-04-05 01:30:57 -07:00
stale.yml chore: fixes 2026-04-05 01:30:57 -07:00
sync-schema.yml chore: fixes 2026-04-05 01:30:57 -07:00
test_server_root_path.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-code-quality.yml ci: check out litellm-docs directly into docs/my-website 2026-04-24 14:21:18 -07:00
test-linting.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-litellm-ui-build.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-litellm.yml build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
test-mcp.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-model-map.yaml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-semgrep.yml [Infra] Move non-API-key CCI jobs to GitHub Actions 2026-04-22 13:38:00 -07:00
test-unit-caching-redis.yml [Infra] Migrate Redis caching tests from GHA to CircleCI 2026-04-08 09:07:12 -07:00
test-unit-core-utils.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-documentation.yml ci: check out litellm-docs directly into docs/my-website 2026-04-24 14:21:18 -07:00
test-unit-enterprise-routing.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-integrations.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-llm-providers.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-misc.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-proxy-auth.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-proxy-db.yml Remove stale test_project_endpoints_prisma.py path from proxy-db workflow 2026-04-24 12:52:51 -07:00
test-unit-proxy-endpoints.yml [Infra] Remove CCI/GHA test duplication and semantically shard proxy DB tests 2026-04-23 14:48:38 -07:00
test-unit-proxy-infra.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-proxy-legacy.yml Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_migration_projects 2026-04-24 12:52:10 -07:00
test-unit-responses-caching-types.yml [Infra] Expand CI branch filters for non-main PR targets 2026-04-15 15:39:57 -07:00
test-unit-security.yml [Infra] Stop attaching push-only postgres workflows to a GHA environment 2026-04-23 16:32:18 -07:00
update_release.py (fix) update load test result 2024-03-13 17:53:51 -07:00
zizmor.yml chore: fixes 2026-04-05 01:30:57 -07:00

Simple PyPI Publishing

A GitHub workflow to manually publish LiteLLM packages to PyPI with a specified version.

How to Use

  1. Go to the Actions tab in the GitHub repository
  2. Select Simple PyPI Publish from the workflow list
  3. Click Run workflow
  4. Enter the version to publish (e.g., 1.74.10)

What the Workflow Does

  1. Updates the version in pyproject.toml
  2. Copies the model prices backup file
  3. Builds the Python package
  4. Publishes to PyPI

Prerequisites

Make sure the following secret is configured in the repository:

  • PYPI_PUBLISH_PASSWORD: PyPI API token for authentication

Example Usage

  • Version: 1.74.11 → Publishes as v1.74.11
  • Version: 1.74.10-hotfix1 → Publishes as v1.74.10-hotfix1

Features

  • Manual trigger with version input
  • Automatic version updates in pyproject.toml
  • Repository safety check (only runs on official repo)
  • Clean package building and publishing
  • Success confirmation with PyPI package link