功能弃用指南

关于弃用

在正常的软件开发过程中,可以删除函数,方法或其他对象。以下是一些准则,可以确保此过程对您的用户最严重破坏。

什么弃用

任何不再使用的功能,方法或数据。

何时遵循这些指南

如果您将功能介绍进入包装的Devel分支,那么在决定不使用它之后即将,您可以在不遵循这些指南的情况下删除该功能。预计Devel分支是不稳定的,并且在恕不另行通知的API更改(尽管您可能决定通过该用户的内容传达这些更改生物体支撑位点)。

但是,如果在至少一个释放的Biocumond版本中存在函数,则必须遵循这些指南。

如何弃用

删除函数的完整过程需要三个释放循环(18个月)。

第1步:弃用函数

当您首次决定消除函数时,您应该将其标记为devel分支中的弃用。通过致电来做这件事.depecated()在功能内。为此,您必须提供应使用替换功能来代替旧功能。例子:

myoldfunc < -  function(){.deprecated(“mynewfunc”)##使用新功能,或剩余的myoldfunc}

这导致每当用户呼叫时要发出警告myoldfunc()。看?.deprecated.想要查询更多的信息。

在旧功能的手册页中指出它已被推翻,并建议替换功能。确保在Man Page示例或Vignette代码块中未调用旧功能;R CMD检查应报告此问题。

\ name {mypkg despecated} \ alias {mypkg-drecedated} \ title {package \ squote {mypkg}} \ description {scents {mypkg}}描述{这些函数仅用于兼容旧版本的\ squote {mypkg},并且将是在下一个释放中消失。} \详细信息{以下函数已不推荐使用,并将取消缺陷;使用下面指示的替换:\逐项化{\ Item {myoldfunc:\代码{\ link {newfunc}}}}}}}

第2步:将功能标记为已缺陷

在下一个发布周期中,在弃用功能后,必须在Devel分支中取消。这意味着对旧功能的调用将返回信息性错误,但不会运行任何其他代码。例子:

myoldfunc < -  function(){.defunct(“mynewfunc”)}

?缺失想要查询更多的信息。

删除已解析功能的文档,并添加到一个人页面,如下:

\ name {mypkg-depunt} \ alias {myoldfunc} \ title {packpact \ squite {pkg}} \ description {这些函数是已经存在的,不再可用。} \ decord {devunct函数是:\ code {myoldfunc}}

第3步:删除该功能

在下一个释放周期中,您的函数被标记为已取消后,完全从您的包R代码和Devel分支中的命名空间中删除。还删除记录功能的任何人页面内容。

将手册页从上一步留出来

帮助(“mypkg-defunt”)

仍然显示已解除功能的列表及其适当的替代品。