mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 12:41:58 +00:00
95ff6470d1
langgraph 和四个 langchain 包原来完全不写版本,fastapi、sqlalchemy、aiosqlite 只有下限, uv.lock 还在 .gitignore 里。按旧写法今天新装,22 个包和测过的版本不同,其中 sqlalchemy 会从 2.0.52 跳到 2.1.1。 1. pyproject.toml:LangGraph / LangChain 一族放行到下一个小版本——引擎依赖它们的断点 格式、interrupt / resume、流式事件和 thinking 块,这些在小版本里也改过行为。aiosqlite 与 SQLAlchemy 同样卡小版本:db/base.py 给 aiosqlite 0.22 的 stop() 打了补丁,连接池 强制断开时会走到它。mcp 卡在大版本 1。 2. backend/requirements.lock:后端全部依赖(含间接依赖、全部 extras)的精确版本, --universal 跨平台。锁的是 473 条测试跑过的那个 conda 环境:本机要装的 96 个包逐一 对上,另外 3 个只在 Windows / emscripten 上装。 3. environment.yml 装包时以锁文件为约束(-c),换机器装到的是同一套。 4. scripts/lock-deps.sh 重新生成锁文件:已锁的版本默认不动,升级用 --upgrade-package / --upgrade。README 补了用法,补装 extras 的命令都带上 -c。 验证:用同版本 Python 新建空环境,照 conda 的方式按 environment.yml 的 pip 行安装—— 装到的 96 个包和测过的环境完全一致,473 passed。
24 lines
1.1 KiB
Bash
Executable File
24 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# 重新生成 backend/requirements.lock:后端全部依赖(含间接依赖、全部 extras)的精确版本。
|
||
#
|
||
# ./scripts/lock-deps.sh 加了依赖:只补新的,已锁的版本不动
|
||
# ./scripts/lock-deps.sh --upgrade-package langgraph 升一个包(连带它必须跟着动的)
|
||
# ./scripts/lock-deps.sh --upgrade 全部升到 pyproject 允许的最新
|
||
#
|
||
# 升级之后跑一遍 pytest 和前端检查再提交——锁文件的意义就是"这一套测过"。
|
||
# 锁是跨平台的(--universal),Linux / Windows 上装到的也是同一套版本。
|
||
# 需要 uv(brew install uv);装包慢可以在命令前加 UV_INDEX_URL=<镜像地址>。
|
||
set -euo pipefail
|
||
|
||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
command -v uv >/dev/null || { echo "缺少 uv:https://docs.astral.sh/uv/"; exit 1; }
|
||
|
||
cd "$ROOT/backend"
|
||
uv pip compile pyproject.toml \
|
||
--all-extras \
|
||
--universal \
|
||
--python-version 3.12 \
|
||
--custom-compile-command "./scripts/lock-deps.sh" \
|
||
-o requirements.lock \
|
||
"$@"
|