fix: loosen dependency constraints to fix OPIK integration conflict

This commit addresses issue #4201 where crewAI's overly restrictive
dependency constraints (using ~= operator) caused conflicts when
installing alongside packages like opik.

Changes:
- Changed dependency constraints from ~= (compatible release) to >=
  (minimum version) for core dependencies in crewai and crewai-tools
- Key dependencies loosened: openai, pydantic, pydantic-settings,
  opentelemetry-*, and others
- Added tests to verify dependency constraints remain flexible

The ~= operator was too restrictive as it only allows patch version
updates (e.g., openai~=1.83.0 means >=1.83.0,<1.84.0). This caused
dependency resolution failures when other packages needed different
versions of shared dependencies.

Fixes #4201

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2026-01-08 04:43:45 +00:00
parent d71e91e8f2
commit d255f1908a
4 changed files with 4690 additions and 4412 deletions

View File

@@ -8,17 +8,16 @@ authors = [
]
requires-python = ">=3.10, <3.14"
dependencies = [
"lancedb~=0.5.4",
"pytube~=15.0.0",
"requests~=2.32.5",
"docker~=7.1.0",
"crewai==1.8.0",
"lancedb~=0.5.4",
"tiktoken~=0.8.0",
"beautifulsoup4~=4.13.4",
"python-docx~=1.2.0",
"youtube-transcript-api~=1.2.2",
"pymupdf~=1.26.6",
"lancedb>=0.5.4",
"pytube>=15.0.0",
"requests>=2.32.5",
"docker>=7.1.0",
"crewai>=1.8.0",
"tiktoken>=0.8.0",
"beautifulsoup4>=4.12.3",
"python-docx>=1.1.0",
"youtube-transcript-api>=0.6.3",
"pymupdf>=1.25.0",
]