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

v0.9.0

Feature is deprecated with clear removal version listed.

v0.10.0

Feature is now off by default, throws an error when used, and can be re-enabled for legacy use.

v0.11.0

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.