我一直在维护和扩展 Odoo 安装。 通常我需要重写或猴子修补某些方法(不能继承)以获得所需的结果。
您认为保持变更可维护的最佳方法是什么?
到目前为止,有两种方式将更改推送到生产中:
当上游代码更改并破坏覆盖时(无论是上游发生较小更改还是主要版本升级时),问题就会出现。
在第一种情况下,如果方法签名相同,即使原始方法的内容完全更改,重写的方法也会继续被调用。
在第二种情况下,如果有重大更改,则从上游拉取时合并/变基会失败。
最后,在某些情况下,其他内部模块依赖于覆盖的方法才能正常运行。
永远不要做猴子补丁(测试除外)。始终尝试使用 if 条件调用 super 或将代码放在它后面。
请记住,堆栈跟踪是通过模块序列在 odoo 中构建的(请参阅 manizest 文件)。
我们的结构位于一个存储库中:
我们的标准是:
提示:CD/CI 是由一个插件“测试”制作的,该插件取决于产品上安装的插件。因此,只需标记要测试的插件,测试就会通过我们所需的设置触发。