Fix #6089: Widen litellm dependency constraint to >=1.84.0,<2

The litellm extra was pinned to >=1.83.7,<1.84, but all versions in
that range have transitive dependency conflicts with crewAI's core
requirements:
- litellm 1.83.7 pins python-dotenv==1.0.1 (crewAI needs >=1.2.2)
- litellm 1.83.8 pins openai==2.24.0 (crewAI needs >=2.30.0)
- litellm 1.83.14 pins openai==2.24.0

litellm 1.84.0+ relaxes these to openai>=2.20.0,<3 and
python-dotenv>=1.0.0,<2, which are compatible with crewAI's bounds.

Adds regression tests verifying the dependency bounds stay compatible.

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2026-06-09 17:15:01 +00:00
parent 703ffe67ee
commit d1e094b22f
3 changed files with 148 additions and 6 deletions

10
uv.lock generated
View File

@@ -13,7 +13,7 @@ resolution-markers = [
]
[options]
exclude-newer = "2026-06-06T00:11:14.404922Z"
exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values.
exclude-newer-span = "P3D"
[manifest]
@@ -1421,7 +1421,7 @@ requires-dist = [
{ name = "json5", specifier = "~=0.10.0" },
{ name = "jsonref", specifier = "~=1.1.0" },
{ name = "lancedb", specifier = ">=0.29.2,<0.30.1" },
{ name = "litellm", marker = "extra == 'litellm'", specifier = ">=1.83.7,<1.84" },
{ name = "litellm", marker = "extra == 'litellm'", specifier = ">=1.84.0,<2" },
{ name = "mcp", specifier = "~=1.26.0" },
{ name = "mem0ai", marker = "extra == 'mem0'", specifier = ">=2.0.0,<3" },
{ name = "openai", specifier = ">=2.30.0,<3" },
@@ -4066,7 +4066,7 @@ wheels = [
[[package]]
name = "litellm"
version = "1.83.14"
version = "1.87.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohttp" },
@@ -4082,9 +4082,9 @@ dependencies = [
{ name = "tiktoken" },
{ name = "tokenizers" },
]
sdist = { url = "https://files.pythonhosted.org/packages/8d/7c/c095649380adc96c8630273c1768c2ad1e74aa2ee1dd8dd05d218a60569f/litellm-1.83.14.tar.gz", hash = "sha256:24aef9b47cdc424c833e32f3727f411741c690832cd1fe4405e0077144fe09c9", size = 14836599, upload-time = "2026-04-26T03:16:10.176Z" }
sdist = { url = "https://files.pythonhosted.org/packages/5d/e5/d0ac1c8f55e2c8d8799589e831bef0d450e69e02ecb511901ffc8de054d9/litellm-1.87.1.tar.gz", hash = "sha256:70ac9d6b25f56ad30de6ff95d26fac3b3fc697a95da582b6072d25d8dc73d493", size = 15455709, upload-time = "2026-06-04T16:23:23.339Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7f/5c/1b5691575420135e90578543b2bf219497caa33cfd0af64cb38f30288450/litellm-1.83.14-py3-none-any.whl", hash = "sha256:92b11ba2a32cf80707ddf388d18526696c7999a21b418c5e3b6eda1243d2cfdb", size = 16457054, upload-time = "2026-04-26T03:16:05.72Z" },
{ url = "https://files.pythonhosted.org/packages/ff/18/8275c95ef09e81ab0c01a162c7b780ce3fbc49066b5d532c6b6ab3dc0118/litellm-1.87.1-py3-none-any.whl", hash = "sha256:dd4e00278cdb846d52e99a09d732575a897273540b54eb044247ecbc0d98f67c", size = 17105482, upload-time = "2026-06-04T16:23:20.769Z" },
]
[[package]]