fix: ensure dep refs are updated for devtools

This commit is contained in:
Greyson LaLonde
2025-10-03 18:32:31 -04:00
committed by GitHub
parent e529ebff2b
commit 5865d39137

View File

@@ -150,6 +150,47 @@ def update_version_in_file(file_path: Path, new_version: str) -> bool:
return False
def update_pyproject_dependencies(file_path: Path, new_version: str) -> bool:
"""Update workspace dependency versions in pyproject.toml.
Args:
file_path: Path to pyproject.toml file.
new_version: New version string.
Returns:
True if any dependencies were updated, False otherwise.
"""
if not file_path.exists():
return False
content = file_path.read_text()
lines = content.splitlines()
updated = False
workspace_packages = ["crewai", "crewai-tools", "crewai-devtools"]
for i, line in enumerate(lines):
for pkg in workspace_packages:
if f"{pkg}==" in line:
stripped = line.lstrip()
indent = line[: len(line) - len(stripped)]
if '"' in line:
lines[i] = f'{indent}"{pkg}=={new_version}",'
elif "'" in line:
lines[i] = f"{indent}'{pkg}=={new_version}',"
else:
lines[i] = f"{indent}{pkg}=={new_version},"
updated = True
if updated:
file_path.write_text("\n".join(lines) + "\n")
return True
return False
def find_version_files(base_path: Path) -> list[Path]:
"""Find all __init__.py files that contain __version__.
@@ -331,17 +372,30 @@ def bump(version: str, dry_run: bool, no_push: bool) -> None:
f"[red]✗[/red] Failed to update: {vfile.relative_to(cwd)}"
)
pyproject = pkg / "pyproject.toml"
if pyproject.exists():
if dry_run:
console.print(
f"[dim][DRY RUN][/dim] Would update dependencies in: {pyproject.relative_to(cwd)}"
)
else:
if update_pyproject_dependencies(pyproject, version):
console.print(
f"[green]✓[/green] Updated dependencies in: {pyproject.relative_to(cwd)}"
)
updated_files.append(pyproject)
if not updated_files and not dry_run:
console.print(
"[yellow]Warning:[/yellow] No __version__ attributes found to update"
)
if not dry_run:
console.print("\nUpdating uv.lock...")
run_command(["uv", "lock"])
console.print("[green]✓[/green] Lock file updated")
console.print("\nSyncing workspace...")
run_command(["uv", "sync"])
console.print("[green]✓[/green] Workspace synced")
else:
console.print("[dim][DRY RUN][/dim] Would run: uv lock")
console.print("[dim][DRY RUN][/dim] Would run: uv sync")
branch_name = f"feat/bump-version-{version}"
if not dry_run: