跳到内容

废弃政策

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

最终说明

本政策是一份动态文档,可能会随着项目及其用户需求的变化而发展。我们欢迎并鼓励社区反馈,以完善此流程。