Back to Vllm

Deprecation Policy

docs/contributing/deprecation_policy.md

0.20.13.5 KB
Original Source

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.

ReleaseStatus
v0.9.0Feature is deprecated with clear removal version listed.
v0.10.0Feature is now off by default, throws an error when used, and can be re-enabled for legacy use.
v0.11.0Feature 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.