弃用¶
keystoneclient 需要一种一致的方式来通知应用程序正在使用已弃用的行为。
问题描述¶
keystoneclient 没有一致地宣传弃用。使用了所有这些技术
代码中的注释。
文档字符串中提到它。
Python 的
warnings模块被使用。一个 FIXME 注释,说明要弃用它
如果事情没有正确弃用,它们实际上并没有被弃用。代码中的注释对开发人员不可见。不能指望开发人员阅读代码来弄清楚哪些已被弃用。
提议的变更¶
keystoneclient 将使用一种一致的方式来宣传弃用。建议的方法是使用 oslo 的 debtcollector。例如,当一个已弃用的函数将被移除时,使用 debtcollector.removals.remove。
debtcollector.removals.remove(message="description")
现有的弃用、注释弃用等将被更改为使用 debtcollector。
备选方案¶
使用 python 的常规 warnings 模块。debtcollector 提供更一致的消息传递。
安全影响¶
通过正确弃用,我们将能够删除代码并减少需要维护的代码量,从而减少潜在的安全问题。
通知影响¶
无。
其他最终用户影响¶
根据应用程序已经配置 debtcollector 的方式,他们可能会看到应用程序失败、打印错误等。
性能影响¶
无。
其他部署者影响¶
无。
开发人员影响¶
开发人员将使用 debtcollector 进行弃用,而不是 warnings、logs 等。
实现¶
负责人¶
- 主要负责人
<blk-u> Brant Knudson
工作项¶
更改现有 DeprecationWarning 的用法,以使用 debtcollector。
找到曾经使用注释或弃用来指示弃用的地方,并使用 debtcollector 代替。
找到曾经使用 FIXME 来指示要弃用某些内容的地方,并使用 debtcollector。
依赖项¶
无。
文档影响¶
keystoneclient 文档将被更改,以说明该库使用 debtcollector 进行弃用。