Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ body:
- '3.10'
- '3.11'
- '3.12'
- '3.13'
- '3.14'
validations:
required: true
- type: input
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/build-uv-cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

steps:
- name: Checkout repository
Expand All @@ -32,6 +32,10 @@ jobs:
python-version: ${{ matrix.python-version }}
enable-cache: false

- name: Install system build dependencies
if: matrix.python-version == '3.14'
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt-dev libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libswscale-dev libswresample-dev libheif-dev

- name: Install dependencies and populate cache
run: |
echo "Building global UV cache for Python ${{ matrix.python-version }}..."
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ jobs:
~/.cache/uv
~/.local/share/uv
.venv
key: uv-main-py3.11-${{ hashFiles('uv.lock') }}
key: uv-main-py3.12-${{ hashFiles('uv.lock') }}
restore-keys: |
uv-main-py3.11-
uv-main-py3.12-

- name: Install uv
uses: astral-sh/setup-uv@v6
with:
version: "0.8.4"
python-version: "3.11"
python-version: "3.12"
enable-cache: false

- name: Install dependencies
Expand Down Expand Up @@ -66,4 +66,4 @@ jobs:
~/.cache/uv
~/.local/share/uv
.venv
key: uv-main-py3.11-${{ hashFiles('uv.lock') }}
key: uv-main-py3.12-${{ hashFiles('uv.lock') }}
16 changes: 10 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
strategy:
fail-fast: true
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
group: [1, 2, 3, 4, 5, 6, 7, 8]
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -40,6 +40,10 @@ jobs:
python-version: ${{ matrix.python-version }}
enable-cache: false

- name: Install system build dependencies
if: matrix.python-version == '3.14'
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt-dev libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libswscale-dev libswresample-dev libheif-dev

- name: Install the project
run: uv sync --all-groups --all-extras

Expand All @@ -49,7 +53,7 @@ jobs:
path: .test_durations_py*
key: test-durations-py${{ matrix.python-version }}

- name: Run tests (group ${{ matrix.group }} of 8)
- name: Run tests (group ${{ matrix.group }} of 16)
run: |
PYTHON_VERSION_SAFE=$(echo "${{ matrix.python-version }}" | tr '.' '_')
DURATION_FILE="../../.test_durations_py${PYTHON_VERSION_SAFE}"
Expand All @@ -73,17 +77,17 @@ jobs:

cd lib/crewai && uv run pytest \
-vv \
--splits 8 \
--splits 16 \
--group ${{ matrix.group }} \
$DURATIONS_ARG \
--durations=10 \
--maxfail=3

- name: Run tool tests (group ${{ matrix.group }} of 8)
- name: Run tool tests (group ${{ matrix.group }} of 16)
run: |
cd lib/crewai-tools && uv run pytest \
-vv \
--splits 8 \
--splits 16 \
--group ${{ matrix.group }} \
--durations=10 \
--maxfail=3
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/type-checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

steps:
- name: Checkout code
Expand All @@ -39,6 +39,10 @@ jobs:
python-version: ${{ matrix.python-version }}
enable-cache: false

- name: Install system build dependencies
if: matrix.python-version == '3.14'
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt-dev libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libswscale-dev libswresample-dev libheif-dev

- name: Install dependencies
run: uv sync --all-groups --all-extras

Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/update-test-durations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
env:
OPENAI_API_KEY: fake-api-key
PYTHONUNBUFFERED: 1

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -44,6 +44,10 @@ jobs:
python-version: ${{ matrix.python-version }}
enable-cache: false

- name: Install system build dependencies
if: matrix.python-version == '3.14'
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt-dev libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libavfilter-dev libswscale-dev libswresample-dev libheif-dev

- name: Install the project
run: uv sync --all-groups --all-extras

Expand All @@ -68,4 +72,4 @@ jobs:
~/.cache/uv
~/.local/share/uv
.venv
key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }}
key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }}
2 changes: 1 addition & 1 deletion lib/crewai-files/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
authors = [
{ name = "Greyson LaLonde", email = "greyson@crewai.com" }
]
requires-python = ">=3.10, <3.14"
requires-python = ">=3.10,<3.15"
dependencies = [
"Pillow~=10.4.0",
"pypdf~=4.0.0",
Expand Down
4 changes: 2 additions & 2 deletions lib/crewai-tools/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
authors = [
{ name = "João Moura", email = "joaomdmoura@gmail.com" },
]
requires-python = ">=3.10, <3.14"
requires-python = ">=3.10,<3.15"
dependencies = [
"lancedb~=0.5.4",
"pytube~=15.0.0",
Expand Down Expand Up @@ -118,7 +118,7 @@ rag = [
"lxml>=5.3.0,<5.4.0", # Pin to avoid etree import issues in 5.4.0
]
xml = [
"unstructured[local-inference, all-docs]>=0.17.2"
"unstructured[local-inference, all-docs]>=0.17.2,<0.18.31"
]
oxylabs = [
"oxylabs==2.0.0"
Expand Down
2 changes: 1 addition & 1 deletion lib/crewai/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
authors = [
{ name = "Joao Moura", email = "joao@crewai.com" }
]
requires-python = ">=3.10, <3.14"
requires-python = ">=3.10,<3.15"
dependencies = [
# Core Dependencies
"pydantic~=2.11.9",
Expand Down
2 changes: 1 addition & 1 deletion lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "{{folder_name}}"
version = "0.1.0"
description = "{{name}} using crewAI"
authors = [{ name = "Your Name", email = "you@example.com" }]
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
dependencies = [
"crewai[tools]==1.9.3"
]
Expand Down
2 changes: 1 addition & 1 deletion lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "{{folder_name}}"
version = "0.1.0"
description = "{{name}} using crewAI"
authors = [{ name = "Your Name", email = "you@example.com" }]
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
dependencies = [
"crewai[tools]==1.9.3"
]
Expand Down
4 changes: 2 additions & 2 deletions lib/crewai/src/crewai/cli/templates/tool/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name = "{{folder_name}}"
version = "0.1.0"
description = "Power up your crews with {{folder_name}}"
readme = "README.md"
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
dependencies = [
"crewai[tools]>=0.203.1"
"crewai[tools]==1.9.3"
]

[tool.crewai]
Expand Down
4 changes: 2 additions & 2 deletions lib/crewai/tests/cli/deploy/test_deploy_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ def test_parse_toml_python_311_plus(self):
[project]
name = "test_project"
version = "0.1.0"
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
dependencies = ["crewai"]
""",
)
Expand All @@ -249,7 +249,7 @@ def test_get_project_name_python_310(self, mock_open):
[project]
name = "test_project"
version = "0.1.0"
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
dependencies = ["crewai"]
""",
)
Expand Down
2 changes: 1 addition & 1 deletion lib/devtools/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
authors = [
{ name = "Greyson R. LaLonde", email = "greyson@crewai.com" },
]
requires-python = ">=3.10, <3.14"
requires-python = ">=3.10,<3.15"
classifiers = ["Private :: Do Not Upload"]
private = true
dependencies = [
Expand Down
7 changes: 6 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "crewai-workspace"
description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks."
readme = "README.md"
requires-python = ">=3.10,<3.14"
requires-python = ">=3.10,<3.15"
authors = [
{ name = "Joao Moura", email = "joao@crewai.com" }
]
Expand Down Expand Up @@ -143,6 +143,11 @@ python_classes = "Test*"
python_functions = "test_*"


[tool.uv]
constraint-dependencies = [
"onnxruntime<1.24; python_version < '3.11'",
]

[tool.uv.workspace]
members = [
"lib/crewai",
Expand Down
Loading
Loading