废弃政策¶
本文档概述了 vLLM 项目中废弃功能的官方政策和流程。
概述¶
vLLM 使用结构化的“废弃流程”来指导废弃功能的生命周期。此政策旨在确保用户在功能被废弃时获得清晰充分的通知,并确保废弃过程以一致且可预测的方式进行。
我们旨在在持续创新和尊重用户对现有功能的依赖之间取得平衡。废弃与我们的遵循语义版本控制 (X.Y.Z) 的次要版本 (Y) 发布相关联,其中
- 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
) 版本中移除废弃功能,以避免用户感到意外。 - 现有废弃的宽限期:任何在此政策之前被废弃的功能,其宽限期将从现在开始计算,而不是追溯。
- 文档至关重要:确保管道的每个阶段都为用户清晰地记录。
最终说明¶
本政策是一份动态文档,可能会随着项目及其用户需求的变化而发展。我们欢迎并鼓励社区反馈,以完善此流程。