弃用政策¶
本文档概述了vLLM项目中功能弃用的官方政策和流程。
概述¶
vLLM采用结构化的"弃用流程"来管理已弃用功能的生命周期。该策略确保在功能被弃用时为用户提供清晰且充分的通知,并以一致且可预测的方式进行弃用。
我们的目标是在持续创新与尊重用户对现有功能的依赖之间取得平衡。功能弃用遵循语义化版本控制(X.Y.Z)中的次版本(Y)发布周期,具体规则如下:
- X 是主版本号(很少变更)
- Y 是次版本号(用于重大变更,包括弃用/移除功能)
- Z 是补丁版本号(用于修复问题和更安全的增强功能)
符合此政策的功能至少包括以下内容:
- 命令行标志
- 环境变量
- 配置文件
- OpenAI兼容API服务器中的接口
- 为
vllm库提供的公共Python API接口
弃用计划¶
弃用过程包含多个明确定义的阶段,这些阶段跨越多个Y版本:
1. 已弃用(默认仍启用)¶
- 操作: 该功能已被标记为弃用。
- 时间线: 弃用警告中会明确说明移除版本(例如,"这将在v0.10.0版本中被移除")。
- Communication: Deprecation is noted in the following, as applicable:
- 帮助字符串
- 日志输出
- API响应
/metrics输出(用于指标功能)- 面向用户的文档
- 版本发布说明
- GitHub Issue (RFC) 反馈渠道
- Python API 中
@typing_extensions.deprecated装饰器的文档和使用说明
2.已弃用(默认关闭)¶
- 操作: 该功能默认禁用,但可通过CLI标志或环境变量重新启用。若未重新启用而使用该功能,则会抛出错误。
- 目的: 为错过早期警告的用户提供临时应急方案,同时表明即将移除该功能。确保所有剩余使用情况清晰可见,并在完全移除前阻止静默破坏。
3. 已移除¶
- Action: 该功能已从代码库中完全移除。
- 注意: 只有已经经过先前弃用阶段的功能才会被移除。
示例时间线¶
假设某个功能在 v0.9.0 版本中已被弃用。
| 版本 | 状态 |
|---|---|
v0.9.0 | Feature is deprecated with clear removal version listed. |
v0.10.0 | Feature is now off by default, throws an error when used, and can be re-enabled for legacy use. |
v0.11.0 | Feature is removed. |
重要指南¶
- 补丁版本中不进行移除: 禁止在补丁版本(
.Z)中移除已弃用的功能,以避免给用户带来意外。 - 现有弃用功能的宽限期: 任何在本政策之前被弃用的功能,其宽限期将从现在开始计算,不追溯既往。
- 文档至关重要: 确保管道的每个阶段都有清晰的用户文档。
最后说明¶
本政策是一份动态文件,可能会随着项目及其用户需求的变化而调整。我们欢迎并鼓励社区反馈,以帮助我们完善流程。