跳到內容

棄用策略

本文件概述了 vLLM 專案中棄用功能的官方策略和流程。

概述

vLLM 使用結構化的“棄用流程”來指導已棄用功能的生命週期。該策略確保使用者在功能被棄用時能獲得清晰且充分的通知,並以一致且可預測的方式進行棄用。

我們的目標是在持續創新和尊重使用者對現有功能的依賴之間取得平衡。棄用與我們的**次要 (Y) 版本**相關聯,遵循語義化版本控制 (X.Y.Z),其中

  • X 是主版本號(不常變)
  • Y 是次要版本號(用於重大更改,包括棄用/移除)
  • Z 是補丁版本號(用於修復和更安全的增強)

受此策略約束的功能至少包括以下內容:

  • 命令列標誌
  • 環境變數
  • 配置檔案
  • OpenAI 相容 API 伺服器中的 API
  • vllm 庫的公共 Python API

棄用流程

棄用過程包含多個清晰定義的階段,這些階段跨越多個 Y 版本。

1. 已棄用(預設啟用)

  • 操作:功能被標記為已棄用。
  • 時間線:移除版本會在棄用警告中明確說明(例如,“此功能將在 v0.10.0 中移除”)。
  • 溝通:在以下位置註明棄用情況(如適用):
    • 幫助字串
    • 日誌輸出
    • API 響應
    • /metrics 輸出(針對指標功能)
    • 面向使用者的文件
    • 釋出說明
    • GitHub Issue(RFC)用於反饋
    • 使用 @typing_extensions.deprecated 裝飾器記錄 Python API。

2. 已棄用(預設停用)

  • 操作:功能預設停用,但仍可透過命令列標誌或環境變數重新啟用。使用該功能而不重新啟用將丟擲錯誤。
  • 目的:允許那些錯過先前警告的使用者暫時回退,同時表明即將移除。確保任何剩餘的使用情況都被明確暴露,並在完全移除之前阻止靜默性故障。

3. 已移除

  • 操作:功能已從程式碼庫中完全移除。
  • 注意:只有經過先前棄用階段的功能才會被移除。

示例時間線

假設一個功能在 v0.9.0 中被棄用。

釋出 狀態
v0.9.0 功能被棄用,並列出明確的移除版本。
v0.10.0 功能現在預設停用,使用時會丟擲錯誤,但可透過重新啟用來支援舊版使用。
v0.11.0 功能已移除。

重要指南

  • 補丁版本中禁止移除:不允許在補丁 (.Z) 版本中移除已棄用功能,以避免對使用者造成意外。
  • 現有棄用的寬限期:任何**在此策略釋出之前**被棄用的功能,其寬限期將從**現在**開始計算,而不是追溯計算。
  • 文件至關重要:確保使用者能清晰地記錄流程的每個階段。

最終說明

本策略是一個活文件,可能會隨著專案及其使用者需求的變化而演變。我們歡迎並鼓勵在完善流程時獲得社群的反饋。