kind: dependency_management name: 多语言依赖管理:pip + npm 双栈与锁定文件、可选依赖与 Dependabot 治理 category: dependency_management scope: - '**' source_files: - pyproject.toml - agent/requirements.txt - requirements-lock.txt - frontend/package.json - frontend/package-lock.json - desktop/electron/package.json - desktop/electron/package-lock.json - .github/dependabot.yml


1. 使用的系统/方法

仓库采用多语言、分目录的依赖管理策略,每个子工程各自维护独立的包清单与锁文件:

没有发现 Go 模块(无 go.mod)、Ruby Gemfile、Cargo 等其它语言的依赖声明。所有第三方库均从公共 PyPI/npm 获取,未发现私有 registry 或 vendoring 目录。

2. 关键文件

作用 路径
Python 项目清单(含可选依赖 extras) pyproject.toml
Python 人类可读依赖清单 agent/requirements.txt
Python 确定性锁文件(含哈希) requirements-lock.txt
前端依赖清单 frontend/package.json
前端锁文件 frontend/package-lock.json
Electron 桌面依赖清单 desktop/electron/package.json
Electron 锁文件 desktop/electron/package-lock.json
Dependabot 规则 .github/dependabot.yml
Docker 构建入口 Dockerfile(引用 requirements-lock.txt)

3. 架构与约定

3.1 Python 依赖分层

3.2 版本约束策略

3.3 前端与 Electron 依赖

3.4 自动化更新与忽略策略

.github/dependabot.yml 定义了三个生态的更新规则:

Dependabot 还显式 ignore 了一批被 ccxt==4.5.71 精确 pin 的传递依赖(aiohappyeyeballs、aiohttp-fast-zlib、aiosignal、attrs、certifi、cffi、charset-normalizer、coincurve、frozenlist、idna、multidict、orjson、propcache、pycparser、typing-extensions、urllib3、uvloop、zlib-ng、pydantic-core),因为 ccxt 的传递闭包无法独立升级;同时 ignore pandas major 与 websockets major,以避免与现有版本上限冲突。

4. 约定与约束