liveBook · Manning

Deprecation

As explained in API Design Patterns

Deprecated is the API version lifecycle state in which a former current version remains available under current-version change restrictions but is scheduled for removal.

Deprecation is the API version lifecycle state for a former current version scheduled for removal. It preserves availability while limiting changes to mandatory ones. section 24.3.2

A deprecation policy should make the transition explicit:

  • Promote a preview version to current when it becomes mature, leaving the existing current version as deprecated. section 24.3.2
  • Keep applying current-version change restrictions while the deprecated version remains available. section 24.3.2
  • Declare the removal interval in advance, communicate it to users, and remove the version when the interval expires. section 24.3 section 24.3.2
  • Treat deprecation as a forcing function for continual improvement: the strategy maintains one current version and one preview version. section 24.3.2

Monthly version cycle

With a monthly release cadence and a two-month deprecation policy, version 1 can be current in February, deprecated in March and April, and deleted in May. Meanwhile, later versions progress from preview to current. section 24.3.2

Table 24.1 Overview of different version states (view table figure)

State

Description

Change policy

Preview

An unstable and still-in-progress preview of functionality users should expect to exist in the next current version

All changes permitted

Current

A very stable set of functionality that should not change and can be expected to continue running for some pre-decided amount of time

Only mandatory changes

Deprecated

A prior current version that is scheduled for impending removal according to the deprecation policy

Only mandatory changes

Deleted

A prior deprecated version that has been removed or otherwise made inaccessible to users

N/A

Compare preview, current, deprecated, and deleted states with their allowed change policies. section 24.3.2

How API Design Patterns covers it

How deep it goes
Defines state transitions, change restrictions, removal timing, and a monthly timeline, but does not specify implementation mechanics.
Examples
Uses a monthly sequence in which versions progress through preview, current, deprecated, and deleted states.
What it assumes
Assumes familiarity with API versions and backward compatibility while clarifying lifecycle states from preview through deletion.
What you can do after
Operate an API release cycle with a declared removal window and communicated deprecation schedule.
How it connects
Connects API versioning with backward compatibility, release cadence, preview versions, current versions, and deleted versions.

Also explained in

Compare how 5 books explain deprecation →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of API Design Patterns. The section links point to the parts of the book it draws on.