Skip to content

Deprecation zh CN

ArchiBot edited this page Nov 16, 2023 · 21 revisions

功能弃用

我们尽可能遵循一致的弃用策略,以使开发和使用保持更好的一致性。


什么是弃用?

弃用是推进或大或小的功能变动的过程,这些更改会使先前使用的选项、参数、功能或用例过时。 弃用通常意味着给定的功能被重写为另一种(类似的)形式,并且您应该确保及时恰当地迁移到新功能。 在这种情况下,弃用只是将给定的功能移动到更合适的位置。

ASF 总是在迅速变化,并且越来越完善。 遗憾的是,我们可能会将某些现有功能更改或移动到该程序的另一部分,以适应新功能,增强兼容性或稳定性。 幸好有弃用机制,我们不需要坚持多年前制定的过时或低级错误的开发决策。 我们总是试图提供符合以前的功能使用预期的合理替代品,这就是为什么弃用大多无害,只需要对以前的用法进行小改动。


弃用阶段

ASF 的弃用流程分为两个阶段,使这种转换更容易,更少遇到麻烦。

阶段 1

一旦决定弃用给定的功能,阶段 1 即告开始,同时会提供新的替代解决方案(如果没有保留相关功能的计划则没有新解决方案)。

在此阶段,ASF 将在弃用功能被调用时输出相应的警告。 只要有可能,ASF 将尝试模仿旧行为并保持与之兼容。 至少在下一个稳定版之前,ASF 将持续处于关于该功能的第 1 阶段。 此时,您应该在不破坏兼容性的情况下,对您所有相关工具进行适当的更新以适应新行为。 如果您不再看到弃用警告,说明您已经完成了迁移工作。

阶段 2

阶段 2 在上述阶段 1 开始后进行安排,并且会从某个稳定版开始。 此阶段会完全删除已弃用的功能,这意味着 ASF 甚至不会接受您尝试使用已弃用的功能,因为它在当前代码中根本不存在。 ASF 将不再输出任何警告,因为它不再能识别您正在尝试执行的操作。


总结

您会有大约一整月的时间进行适当的迁移,即使您只是偶尔使用 ASF,这也应该足够了。 在此之后,ASF 不再保证旧设置会产生任何效果(第 2 阶段),从而有效地使某些功能在您不注意的情况下完全停止运行。 如果您已长达一个月以上没有使用 ASF,建议您​从头开始,或者阅读所有您错过版本的更新日志,手动调整您已有的用法。

在大多数情况下,忽略弃用警告不会使 ASF 的基本功能失效,而是回退到默认行为(可能符合您的个人偏好,也可能不符合)。


示例

我们将 V3.1.2.2 版本之前的 --server 命令行参数​迁移到了 IPC 全局配置属性

阶段 1

阶段 1 开始于版本 V3.1.2.2,我们为 --server 的使用添加了适当的警告。 现在过时的 --server 参数将会被自动转换为 IPC: true 全局配置属性,实际效果与原有的 --server 开关完全相同。 这允许每个人在 ASF 停止支持旧参数之前进行适当的迁移。

阶段 2

阶段 2 开始于版本 V3.1.3.0,就在上述阶段 1 的 V3.1.2.9 稳定版发布之后。 阶段 2 导致 ASF 完全停止识别 --server,将其视为无效参数,它对程序不再有任何效果。 对于仍然没有将 --server 用法改为 IPC: true 的用户,IPC 将完全停止运行,因为 ASF 不再对此进行自动转换。

Clone this wiki locally