Skip to content

废弃政策

本文档概述了 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)版本中移除已废弃的功能,以避免让用户感到意外。
  • 现有废弃功能的宽限期:在此政策之前已废弃的任何功能,其宽限期从现在开始,而不是追溯生效。
  • 文档至关重要:确保对用户清晰地记录废弃管道的每个阶段。

最后说明

此政策是一项动态文档,可能会随着项目和用户需求的变化而演进。我们欢迎并鼓励社区反馈,以帮助我们完善流程。