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)