ba5ae13cc1
Build uv cache / build-cache (3.10) (push) Has been cancelled
Build uv cache / build-cache (3.11) (push) Has been cancelled
Build uv cache / build-cache (3.12) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Check Documentation Broken Links / Check broken links (push) Has been cancelled
Vulnerability Scan / pip-audit (push) Has been cancelled
Build uv cache / build-cache (3.13) (push) Has been cancelled
69 lines
2.9 KiB
Markdown
69 lines
2.9 KiB
Markdown
# crewai-devtools
|
|
|
|
CLI for versioning and releasing crewAI packages.
|
|
|
|
## Setup
|
|
|
|
Installed automatically via the workspace (`uv sync`). Requires:
|
|
|
|
- [GitHub CLI](https://cli.github.com/) (`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. Clones enterprise repo, bumps versions and `crewai[tools]` dep, runs `uv sync`
|
|
11. Creates enterprise bump PR, polls until merged
|
|
12. 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
|
|
``` |