废弃政策¶
本文档概述了 vLLM 项目中废弃功能的官方政策和流程。
概述¶
vLLM 使用结构化的“废弃管道”来管理废弃功能的生命周期。此政策确保用户在功能被废弃时能够获得清晰且充分的通知,并保证废弃流程以一致且可预测的方式进行。
我们力求在持续创新与尊重用户对现有功能的依赖之间取得平衡。废弃操作与我们的 次要版本 (Y) 发布绑定,遵循语义化版本控制 (X.Y.Z),其中:
- X 是主版本(较少变更)
- Y 是次版本(用于重要变更,包括废弃和移除)
- Z 是补丁版本(用于修复和更安全的增强)
受此政策涵盖的功能包括(但不限于)以下内容:
- CLI 标志
- 环境变量
- 配置文件
- OpenAI 兼容 API 服务器中的 API
vllm库的公共 Python API
废弃管道¶
废弃流程包含多个明确定义的阶段,跨越多个 Y 版本:
1. 已废弃(默认仍启用)¶
- 操作:功能被标记为已废弃。
- 时间线:废弃警告中明确说明移除版本(例如:"此功能将在 v0.10.0 中被移除")。
- 沟通:废弃信息在以下地方注明,视情况而定:
- 帮助字符串
- 日志输出
- API 响应
/metrics输出(针对指标功能)- 面向用户的技术文档
- 发行说明
- GitHub Issue(RFC)用于反馈
- 文档和 Python API 的
@typing_extensions.deprecated装饰器使用
2. 已废弃(默认关闭)¶
- 操作:功能默认禁用,但可通过 CLI 标志或环境变量重新启用。未重新启用即使用时会抛出错误。
- 目的:为错过早期警告的用户提供临时的逃生通道,同时表明即将移除。确保任何剩余使用情况被清楚地暴露出来,并在完全移除前阻止静默失效。
3. 已移除¶
- 操作:功能从代码库中完全移除。
- 说明:只有已通过前两个废弃阶段的功能才会被移除。
示例时间线¶
假设某功能在 v0.9.0 中被废弃。
| 发布版本 | 状态 |
|---|---|
v0.9.0 | 功能被废弃,明确列出移除版本。 |
v0.10.0 | 功能默认关闭,使用时抛出错误,可通过标志重新启用以支持遗留使用。 |
v0.11.0 | 功能被移除。 |
重要指南¶
- 补丁版本中不得移除:禁止在补丁(
.Z)版本中移除已废弃的功能,以避免让用户感到意外。 - 现有废弃功能的宽限期:在此政策之前已废弃的任何功能,其宽限期从现在开始,而不是追溯生效。
- 文档至关重要:确保对用户清晰地记录废弃管道的每个阶段。
最后说明¶
此政策是一项动态文档,可能会随着项目和用户需求的变化而演进。我们欢迎并鼓励社区反馈,以帮助我们完善流程。