弃用

bp 弃用

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 进行弃用。

参考资料