mirror of
https://github.com/langchain-ai/deepagents.git
synced 2026-07-21 17:25:26 -04:00
505faa070f
Raises the monorepo's core LangChain dependency floor so packages and examples resolve against the latest compatible `langchain`, `langchain-core`, and `langgraph` patch releases. Adds a `make lock no-cache` path so lock regeneration can bypass cached package metadata when newly published versions need to be picked up. ## Changes - Raises direct `langchain` constraints across packages and examples to `>=1.3.9,<2.0.0`. - Raises direct `langchain-core` constraints in `deepagents` and `langchain-quickjs` to `>=1.4.7,<2.0.0`. - Raises direct `langgraph` constraints in packages and examples to `>=1.2.5`, preserving existing upper bounds where present. - Adds `LOCK_ARGS` and a `no-cache` phony target so `make lock no-cache` passes `--no-cache` through each `uv lock` invocation.
89 lines
2.9 KiB
Makefile
89 lines
2.9 KiB
Makefile
MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
LIB_PACKAGE_DIRS := $(patsubst %/,%,$(dir $(patsubst $(MAKEFILE_DIR)%,%,$(wildcard $(MAKEFILE_DIR)*/Makefile $(MAKEFILE_DIR)partners/*/Makefile))))
|
|
EXAMPLE_PACKAGE_DIRS := $(patsubst %/,%,$(patsubst $(MAKEFILE_DIR)%,%,$(dir $(wildcard $(MAKEFILE_DIR)../examples/*/pyproject.toml))))
|
|
PACKAGE_DIRS := $(sort $(LIB_PACKAGE_DIRS) $(EXAMPLE_PACKAGE_DIRS))
|
|
|
|
# Map package dirs to their required Python version
|
|
# acp requires 3.14, everything else uses 3.12
|
|
python_version = $(if $(filter acp,$1),3.14,3.12)
|
|
|
|
.PHONY: help lock no-cache lock-bump lock-check lint format build-frontends bench-all
|
|
|
|
LOCK_ARGS := $(if $(filter no-cache,$(MAKECMDGOALS)),--no-cache,)
|
|
|
|
FRONTEND_SRC := cli/frontend
|
|
FRONTEND_DEST := cli/deepagents_cli/deploy/frontend_dist
|
|
BENCH_PACKAGES := deepagents code
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
help: ## Show this help message
|
|
@echo "Usage: make [target]"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@awk 'BEGIN {FS = ":.*##"} /^[a-zA-Z_-]+:.*##/ {printf " %-20s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
lock: ## Update all lockfiles (append 'no-cache' to bypass uv's cache)
|
|
@set -e; \
|
|
$(foreach pkg,$(PACKAGE_DIRS), \
|
|
echo "🔒 Locking $(pkg)"; \
|
|
uv lock --directory '$(pkg)' --python '$(call python_version,$(pkg))' $(LOCK_ARGS); \
|
|
)
|
|
@echo "✅ All lockfiles updated!"
|
|
|
|
no-cache:
|
|
@:
|
|
|
|
lock-bump: ## Bump a dependency across all lockfiles (usage: make lock-bump DEP=requests)
|
|
@if [ -z "$(DEP)" ]; then \
|
|
echo "Usage: make lock-bump DEP=<package>"; \
|
|
exit 1; \
|
|
fi
|
|
@set -e; \
|
|
$(foreach pkg,$(PACKAGE_DIRS), \
|
|
echo "⬆️ Bumping $(DEP) in $(pkg)"; \
|
|
uv lock --directory '$(pkg)' --python '$(call python_version,$(pkg))' -P '$(DEP)'; \
|
|
)
|
|
@echo "✅ Bumped $(DEP) across all lockfiles!"
|
|
|
|
lock-check: ## Check all lockfiles are up-to-date
|
|
@set -e; \
|
|
$(foreach pkg,$(PACKAGE_DIRS), \
|
|
echo "🔍 Checking $(pkg)"; \
|
|
uv lock --check --directory '$(pkg)' --python '$(call python_version,$(pkg))'; \
|
|
)
|
|
@echo "✅ All lockfiles are up-to-date!"
|
|
|
|
lint: ## Lint all packages
|
|
@set -e; \
|
|
for dir in $(LIB_PACKAGE_DIRS); do \
|
|
echo "🔍 Linting $$dir"; \
|
|
$(MAKE) -C "$$dir" lint; \
|
|
done
|
|
@echo "✅ All packages linted!"
|
|
|
|
format: ## Format all packages
|
|
@set -e; \
|
|
for dir in $(LIB_PACKAGE_DIRS); do \
|
|
echo "🎨 Formatting $$dir"; \
|
|
$(MAKE) -C "$$dir" format; \
|
|
done
|
|
@echo "✅ All packages formatted!"
|
|
|
|
build-frontends: ## Build the CLI frontend and copy into the deploy bundle
|
|
@set -e; \
|
|
echo "--> Building $(FRONTEND_SRC)"; \
|
|
( cd $(FRONTEND_SRC) && npm ci && npm run build ); \
|
|
echo "--> Copying dist into $(FRONTEND_DEST)"; \
|
|
rm -rf $(FRONTEND_DEST); \
|
|
mkdir -p $(FRONTEND_DEST); \
|
|
cp -R $(FRONTEND_SRC)/dist/. $(FRONTEND_DEST)/; \
|
|
echo "Frontend built: $(FRONTEND_DEST)"
|
|
|
|
bench-all: ## Run benchmarks across all benched packages
|
|
@set -e; \
|
|
for pkg in $(BENCH_PACKAGES); do \
|
|
echo "--> bench: $$pkg"; \
|
|
$(MAKE) -C $$pkg bench; \
|
|
done
|