Deprecation Policy#
This document outlines the official policy and process for deprecating features in the vLLM project.
Overview#
vLLM uses a structured “deprecation pipeline” to guide the lifecycle of deprecated features. This policy ensures that users are given clear and sufficient notice when a feature is deprecated and that deprecations proceed in a consistent and predictable manner.
We aim to strike a balance between continued innovation and respecting users’ reliance on existing functionality. Deprecations are tied to our minor (Y) releases following semantic versioning (X.Y.Z), where:
X is a major version (rare)
Y is a minor version (used for significant changes, including deprecations/removals)
Z is a patch version (used for fixes and safer enhancements)
Features that fall under this policy include (at a minimum) the following:
CLI flags
Environment variables
Configuration files
APIs in the OpenAI-compatible API server
Public Python APIs for the
vllm
library
Deprecation Pipeline#
The deprecation process consists of several clearly defined stages that span multiple Y releases:
1. Deprecated (Still On By Default)
Action: Feature is marked as deprecated.
Timeline: A removal version is explicitly stated in the deprecation warning (e.g., “This will be removed in v0.10.0”).
Communication: Deprecation is noted in the following, as applicable:
Help strings
Log output
API responses
/metrics
output (for metrics features)User-facing documentation
Release notes
GitHub Issue (RFC) for feedback
Documentation and use of the
@typing_extensions.deprecated
decorator for Python APIs
2.Deprecated (Off By Default)
Action: Feature is disabled by default, but can still be re-enabled via a CLI flag or environment variable. Feature throws an error when used without re-enabling.
Purpose: Allows users who missed earlier warnings a temporary escape hatch while signaling imminent removal. Ensures any remaining usage is clearly surfaced and blocks silent breakage before full removal.
3. Removed
Action: Feature is completely removed from the codebase.
Note: Only features that have passed through the previous deprecation stages will be removed.
Example Timeline#
Assume a feature is deprecated in v0.9.0
.
Release |
Status |
---|---|
|
Feature is deprecated with clear removal version listed. |
|
Feature is now off by default, throws an error when used, and can be re-enabled for legacy use. |
|
Feature is removed. |
Important Guidelines#
No Removals in Patch Releases: Removing deprecated features in patch (
.Z
) releases is disallowed to avoid surprising users.Grace Period for Existing Deprecations: Any feature deprecated before this policy will have its grace period start now, not retroactively.
Documentation is Critical: Ensure every stage of the pipeline is documented clearly for users.
Final Notes#
This policy is a living document and may evolve as the needs of the project and its users change. Community feedback is welcome and encouraged as we refine the process.