fc-ci fork 依赖
Press 控制面板必须使用
balamurali27/frappe的 fc-ci 分支,不能用官方frappe/frappe@version-15。原因是 Press app 的 pip 依赖版本和官方 frappe 的依赖版本互斥。
1. 归属
| 问题 | 答案 |
|---|---|
| 属于哪个仓库? | frappe/press(Press app)和 frappe/frappe(官方框架)的依赖声明冲突。fc-ci 分支修复了此冲突 |
| 在容器内路径? | 两个 pyproject.toml 的依赖版本区间 |
| 在构建链的哪一步? | Dockerfile builder 阶段 bench init 拉取 frappe 框架时 |
2. 功能解释
具体冲突是什么?
官方 frappe/frappe@version-15 的 pyproject.toml 声明:
cryptography>=3.0,<4.0
Press app 需要:
cryptography>=37.0
pip 无法同时满足这两个条件 → 安装失败。fc-ci 分支把依赖上限放宽了(cryptography>=3.0),让 Press 能装进去。
3. 为什么不能修正
这是 Press 团队自己的设计。他们内部 CI 用的就是 fc-ci + Press develop 这个组合。Dockerfile 第 7-11 行写得很清楚:
“实测过:press 的依赖与标准 frappe 分支的依赖版本区间是硬冲突,不重叠。press 自己的 CI 用的就是这个 fork+分支组合。”
除非 Press 团队把 fc-ci 的依赖修复合并到官方 frappe/frappe 主线,否则必须保留这个 fork。
4. 缓解措施
- fork 到
miao-Q777/frappe@fc-ci自保,上游balamurali27删库不影响 - Dockerfile 已经指向自己的 fork(
FRAPPE_PATH=https://github.com/miao-Q777/frappe) - 定期检查 upstream 有无更新(见 维护 问题 3)
5. 影响范围
- Press 控制面的整个构建依赖
- 客户站点不受影响(用的是
frappe/frappe@version-15,不是 fc-ci)