Files
crewAI/lib/devtools
dependabot[bot] 7d1657feda chore(deps): bump the patch-minor-updates group across 1 directory with 18 updates
Bumps the patch-minor-updates group with 18 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.1` | `0.16.1` |
| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.2` |
| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.1` |
| [bandit](https://github.com/PyCQA/bandit) | `1.9.2` | `1.9.4` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |
| [pytest-subprocess](https://github.com/aklajnert/pytest-subprocess) | `1.5.3` | `1.6.0` |
| [vcrpy](https://github.com/kevin1024/vcrpy) | `8.2.1` | `8.3.0` |
| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.0.1` | `4.1.0` |
| [types-requests](https://github.com/python/typeshed) | `2.31.0.20240406` | `2.33.0.20260712` |
| [types-regex](https://github.com/python/typeshed) | `2026.1.15.20260116` | `2026.7.19.20260720` |
| [boto3-stubs[bedrock-runtime]](https://github.com/youtype/mypy_boto3_builder) | `1.42.40` | `1.43.62` |
| [types-pymysql](https://github.com/python/typeshed) | `1.1.0.20250916` | `1.2.0.20260724` |
| [commitizen](https://github.com/commitizen-tools/commitizen) | `4.16.3` | `4.17.0` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |
| [openai](https://github.com/openai/openai-python) | `2.41.0` | `2.52.0` |
| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.26.7` | `1.28.0` |
| [tinytag](https://github.com/tinytag/tinytag) | `2.2.1` | `2.3.0` |



Updates `ruff` from 0.15.1 to 0.16.1
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.15.1...0.16.1)

Updates `mypy` from 1.19.1 to 1.20.2
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.19.1...v1.20.2)

Updates `pre-commit` from 4.5.1 to 4.6.1
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.1)

Updates `bandit` from 1.9.2 to 1.9.4
- [Release notes](https://github.com/PyCQA/bandit/releases)
- [Commits](https://github.com/PyCQA/bandit/compare/1.9.2...1.9.4)

Updates `pytest` from 9.0.3 to 9.1.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1)

Updates `pytest-asyncio` from 1.3.0 to 1.4.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0)

Updates `pytest-subprocess` from 1.5.3 to 1.6.0
- [Release notes](https://github.com/aklajnert/pytest-subprocess/releases)
- [Changelog](https://github.com/aklajnert/pytest-subprocess/blob/master/HISTORY.rst)
- [Commits](https://github.com/aklajnert/pytest-subprocess/compare/1.5.3...1.6.0)

Updates `vcrpy` from 8.2.1 to 8.3.0
- [Release notes](https://github.com/kevin1024/vcrpy/releases)
- [Changelog](https://github.com/kevin1024/vcrpy/blob/master/docs/changelog.rst)
- [Commits](https://github.com/kevin1024/vcrpy/compare/v8.2.1...v8.3.0)

Updates `pytest-randomly` from 4.0.1 to 4.1.0
- [Changelog](https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-randomly/compare/4.0.1...4.1.0)

Updates `types-requests` from 2.31.0.20240406 to 2.33.0.20260712
- [Commits](https://github.com/python/typeshed/commits)

Updates `types-regex` from 2026.1.15.20260116 to 2026.7.19.20260720
- [Commits](https://github.com/python/typeshed/commits)

Updates `boto3-stubs[bedrock-runtime]` from 1.42.40 to 1.43.62
- [Release notes](https://github.com/youtype/mypy_boto3_builder/releases)
- [Commits](https://github.com/youtype/mypy_boto3_builder/commits)

Updates `types-pymysql` from 1.1.0.20250916 to 1.2.0.20260724
- [Commits](https://github.com/python/typeshed/commits)

Updates `commitizen` from 4.16.3 to 4.17.0
- [Release notes](https://github.com/commitizen-tools/commitizen/releases)
- [Changelog](https://github.com/commitizen-tools/commitizen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/commitizen-tools/commitizen/compare/v4.16.3...v4.17.0)

Updates `pydantic` from 2.12.5 to 2.13.4
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4)

Updates `openai` from 2.41.0 to 2.52.0
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v2.41.0...v2.52.0)

Updates `pymupdf` from 1.26.7 to 1.28.0
- [Release notes](https://github.com/pymupdf/pymupdf/releases)
- [Changelog](https://github.com/pymupdf/PyMuPDF/blob/main/changes.txt)
- [Commits](https://github.com/pymupdf/pymupdf/compare/1.26.7...1.28.0)

Updates `tinytag` from 2.2.1 to 2.3.0
- [Release notes](https://github.com/tinytag/tinytag/releases)
- [Commits](https://github.com/tinytag/tinytag/compare/2.2.1...2.3.0)

---
updated-dependencies:
- dependency-name: bandit
  dependency-version: 1.9.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch-minor-updates
- dependency-name: boto3-stubs[bedrock-runtime]
  dependency-version: 1.43.62
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: commitizen
  dependency-version: 4.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: mypy
  dependency-version: 1.20.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: openai
  dependency-version: 2.52.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pre-commit
  dependency-version: 4.6.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pydantic
  dependency-version: 2.13.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pymupdf
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pytest
  dependency-version: 9.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pytest-asyncio
  dependency-version: 1.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pytest-randomly
  dependency-version: 4.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: pytest-subprocess
  dependency-version: 1.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: ruff
  dependency-version: 0.16.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: tinytag
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: types-pymysql
  dependency-version: 1.2.0.20260724
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: types-regex
  dependency-version: 2026.7.19.20260720
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: types-requests
  dependency-version: 2.33.0.20260712
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
- dependency-name: vcrpy
  dependency-version: 8.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: patch-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-06 00:02:48 +00:00
..

crewai-devtools

CLI for versioning and releasing crewAI packages.

Setup

Installed automatically via the workspace (uv sync). Requires:

  • GitHub CLI (gh) — authenticated
  • OPENAI_API_KEY env var — for release note generation and translation
  • ENTERPRISE_REPO env var — GitHub repo for enterprise releases
  • ENTERPRISE_VERSION_DIRS env var — comma-separated directories to bump in the enterprise repo
  • ENTERPRISE_CREWAI_DEP_PATH env var — path to the pyproject.toml with the crewai[tools] pin in the enterprise repo
  • ENTERPRISE_WORKFLOW_PATHS env var — comma-separated workflow file paths in the enterprise repo whose crewai[extras]==<version> pins should be rewritten on each release (e.g. .github/workflows/tests.yml)
  • ENTERPRISE_EXTRA_PACKAGES env var — comma-separated packages to also pin in enterprise pyproject files, in addition to crewai / crewai[extras]

Commands

devtools release <version>

Full end-to-end release. Bumps versions, creates PRs, tags, publishes a GitHub release, and releases the enterprise repo.

devtools release 1.10.3
devtools release 1.10.3a1                # pre-release
devtools release 1.10.3 --no-edit        # skip editing release notes
devtools release 1.10.3 --dry-run        # preview without changes
devtools release 1.10.3 --skip-enterprise  # skip enterprise release phase

Flow:

  1. Bumps __version__ and dependency pins across all lib/ packages
  2. Runs uv sync
  3. Creates version bump PR against main, polls until merged
  4. Generates release notes (OpenAI) from commits since last release
  5. Updates Edge changelogs (docs/edge/{en,pt-BR,ko,ar}/changelog.mdx)
  6. Freezes docs/edge/ into docs/v<version>/, registers the version in docs.json, and points the canonical /<lang>/:slug* redirects at the new default
  7. Opens a [docs-freeze] PR against main, polls until merged
  8. Tags main and creates GitHub release
  9. Triggers PyPI publish workflow
  10. Updates crewAIInc/crew_deployment_test to the exact CrewAI version, creates a bump PR, and waits for it to merge
  11. Updates crewAIInc/flow_deployment_test to the exact CrewAI version, creates a bump PR, and waits for it to merge
  12. Clones enterprise repo, bumps versions and crewai[tools] dep, runs uv sync
  13. Creates enterprise bump PR, polls until merged
  14. Tags and creates GitHub release on enterprise repo

The docs-snapshots CI guard rejects writes under docs/v*/ and deletions/renames in docs/images/ unless the PR title starts with [docs-freeze]. The release CLI sets that prefix automatically; manual edits to a frozen snapshot need the same prefix to land.

Pre-releases (e.g. 1.10.1b1) skip the snapshot step — they ride Edge — and the docs PR title omits the [docs-freeze] prefix.

devtools bump <version>

Bump versions only (phase 1 of release).

devtools bump 1.10.3
devtools bump 1.10.3 --no-push      # don't push or create PR
devtools bump 1.10.3 --no-commit    # only update files
devtools bump 1.10.3 --dry-run

devtools tag

Tag and release only (phase 2 of release). Run after the bump PR is merged.

devtools tag
devtools tag --no-edit
devtools tag --dry-run