Odoo 正在其专门的 20.0 路径下发布用户文档,其官方合并基础设施也显示出面向 20.0 分支的活跃暂存工作。这些进展使 Odoo 20 文档和开发活动公开可见。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge) 这并不能确认正式发布日期,也不能表明每一项功能、迁移要求和文档页面都已最终确定。组织应当区分可见的准备工作和已确认的生产发布里程碑。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge)
Odoo 还调整了移除其旧版 XML-RPC 和 JSON-RPC 服务的时间表。移除现已推迟到 Odoo 21.1/22,而 Odoo 20 和 21 仍以弃用形式保留这些服务,并同时提供 JSON-2。 (Odoo pull Docs: 16925) 因此,使用旧服务的集成在升级到 Odoo 20 或 21 时,并不会面临已确认的移除事件。不过,弃用状态仍然需要规划,因为这些版本中可用并不意味着会无限期保留这些接口。 (Odoo pull Docs: 16925)
公开的 Odoo 20 活动确认了什么
Odoo 的 20.0 文档结构中至少有一页公开的用户文档。Odoo 的合并基础设施也标识出 20.0 分支的暂存活动。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge) 这些来源可支持早期技术调研,但并不能证明完整文档集已经完备,也不能证明每一项暂存变更都会原样进入生产环境。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge)
团队可以利用现有文档开始审视受影响的业务流程,并借助暂存活动识别值得关注的开发领域。迁移预算和交付日期仍应考虑后续基于最终文档、受支持升级路径以及部署所选准确构建版本的验证。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge)
这种区分有助于避免将公开文档路径误认为已完成发布的证据。现有来源证实 Odoo 20 相关材料和分支工作是可见的,但它们并未提供完整的发布验收检查清单。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge)
旧版 RPC 仍可用,但已弃用
基于 Odoo 20 中预期会移除 XML-RPC 和 JSON-RPC 的计划应当修订。当前立场是将移除推迟到 Odoo 21.1/22,并让这两项旧服务在 Odoo 20 和 21 中继续可用。JSON-2 也同时可用。 (Odoo pull Docs: 16925) 因此,各组织可以重新考虑那些仅为避免 Odoo 20 中断而计划的重写工作的紧迫性,同时继续推进脱离已弃用接口所需的工作。 (Odoo pull Docs: 16925)
集成负责人应梳理在自定义代码、外部系统以及核心 Odoo 实现之外管理的连接中,对 XML-RPC 和 JSON-RPC 的使用情况。然后,可为每个依赖项指定负责人,在目标 Odoo 版本上进行测试,并评估迁移到 JSON-2 的可行性。 (Odoo pull Docs: 16925) 由于移除时间点表述为 Odoo 21.1/22,因此规划应以目标版本的文档为准,而不是将该表述视为日历截止日期。 (Odoo pull Docs: 16925)
对于 Odoo 20 和 21,旧版 RPC 的使用意味着弃用和未来移除风险,而不是确认这些服务不存在。升级测试仍应检查身份验证、请求处理、错误行为,以及每个集成产生的业务结果。 (Odoo pull Docs: 16925) 来源确认了与 JSON-2 共存,但并未说明每个旧调用都有完全相同的 JSON-2 等效项,也未说明迁移不需要应用更改。 (Odoo pull Docs: 16925)
延期为分阶段迁移提供了更多时间,但不应将其视为可以不记录依赖项的理由。一个实用的计划可以在 Odoo 20 或 21 升级期间保留现有集成,同时在所述移除时间点之前将其迁移到 JSON-2。如果 Odoo 再次更改版本计划,应重新审视时间表。 (Odoo pull Docs: 16925)
Python 和 PostgreSQL 最低版本提高
Odoo 已选择 Python 3.12 作为 Odoo 20 的最低 Python 版本,并将 PostgreSQL 15 作为最低 PostgreSQL 版本。 (mergebot.odoo.com) 这些要求应纳入自托管安装以及组织控制应用或数据库平台的其他环境的就绪性审查中。低于任一最低版本的系统,在按所述 Odoo 20 基线评估之前,将需要进行平台更改。 (mergebot.odoo.com)
版本检查应覆盖开发、测试、预发布、生产、备份恢复和灾难恢复环境。构建镜像、部署定义和恢复流程也可能指定 Python 或 PostgreSQL 版本,应根据新的最低要求进行审查。 (mergebot.odoo.com)
来源明确了所选的最低版本,但并未描述操作系统、Python 包、PostgreSQL 扩展或第三方 Odoo 模块的所有兼容性条件。 (mergebot.odoo.com) 因此,组织应在 Python 3.12 和 PostgreSQL 15 上测试其实际模块集合和部署设计。满足最低版本要求是平台要求,并不意味着每个自定义或第三方组件都兼容。 (mergebot.odoo.com)
如何调整 Odoo 20 规划
Odoo 20 的就绪性计划可以将工作分为三个流。第一是监控公开的 20.0 文档和分支暂存中的变更,关注与业务流程和技术设计相关的内容。第二是将旧版 RPC 迁移从 Odoo 20 的阻塞项,转为计划中的弃用工作,并在所述 Odoo 21.1/22 移除时间点之前完成。第三是根据 Python 3.12 和 PostgreSQL 15 的最低要求验证基础设施。 (Odoo 20.0 Docs: eCommerce B2b B2c; Odoo pull Docs: 16925; mergebot.odoo.com; Runbot Merge)
这种做法避免了两个规划错误。其一是因为这些来源没有确定通用发布里程碑,就推迟所有准备工作。其二是把公开文档和暂存活动视为所有功能、接口和部署要求都已最终确定的证据。来源支持开展准备工作,而最终批准应取决于针对所选发布版本和部署环境的验证。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge)
RPC 库存清点可以独立于 Odoo 20 最终发布决定进行,因为当前立场表明旧服务将继续可用,并且会在稍后才移除。基础架构团队同样可以在应用迁移计划确定之前,识别出低于 Python 3.12 或 PostgreSQL 15 的环境。 (Odoo pull Docs: 16925; mergebot.odoo.com)
迁移批准前的检查
在批准 Odoo 20 迁移之前,决策者应核实所讨论的确切构建版本、适用于其应用的文档,以及相关的分阶段变更是否在发布准备期间被修改。公开的 20.0 文档和分支活动显示了进展,但不能证明最终发布状态。 (Odoo 20.0 Docs: eCommerce B2b B2c; Runbot Merge)
批准流程还应包括一份已记录的 XML-RPC 和 JSON-RPC 依赖列表、每个依赖项的负责人和迁移方法,以及任何迁移到 JSON-2 的测试证据。现有集成可以在 Odoo 20 和 21 中继续使用已弃用的服务,遵循当前立场,但计划应涉及在 Odoo 21.1/22 进行移除。 (Odoo pull Docs: 16925)
最后,团队应在生产、非生产和恢复环境中确认 Python 3.12 和 PostgreSQL 15。自定义模块、外部包和运维流程都应在这些版本上进行测试,而不是仅仅因为最低版本决定就假定兼容。 (mergebot.odoo.com)
当前立场支持尽早准备,而不意味着 Odoo 20 已经最终定稿:公开文档和分支分阶段内容可供审查,旧版 RPC 仍然弃用但在 Odoo 20 和 21 中仍可使用,平台最低要求提升为 Python 3.12 和 PostgreSQL 15。 (Odoo 20.0 Docs: eCommerce B2b B2c; Odoo pull Docs: 16925; mergebot.odoo.com; Runbot Merge)
