Safeguard
Developer Tools•

How long should you keep a deprecated feature in an on-prem product?

A public deprecation policy gives GA features a full major version, beta features months, and alpha features none. A model for on-prem vendors.

Safeguard Security Team
3 min read

Long enough for customers to see the notice and finish an upgrade cycle. A public model, the Kubernetes deprecation policy, keeps stable API versions through a whole major version, deprecates beta versions after roughly nine months, and allows alpha versions to vanish without notice. Match your window to how slowly your customers move.

What the public policy says

The Kubernetes policy sets minimum lifetimes by maturity.

MaturityRule from the policy
GAMay be marked deprecated, but not removed within a major version
BetaDeprecated no more than 9 months or 3 minor releases after introduction, whichever is longer, and no longer served 9 months or 3 minor releases after deprecation, whichever is longer
AlphaMay be removed in any release without prior deprecation notice

It also gives an example of timing: announce and document the deprecation in sync with the following release.

Adapting it for self-hosted customers

Cloud users upgrade often. On-prem customers may wait many months for a maintenance window and a test cycle. Your window should therefore be measured in the time they need to schedule, test and deploy, not in your own release cadence. A rule that counts releases is fair only if your releases are slow enough to give real time.

A simple scheme

  1. Label every feature as stable, preview or experimental, in the docs and the UI.
  2. Promise that stable features are not removed within a major version and that a deprecation is announced at least one release before removal.
  3. For preview features, state a fixed time window, not just a release count.
  4. Say plainly that experimental features can change without notice, and keep them off by default.
  5. Put every deprecation in the release notes with a removal version and a replacement.

The security angle

Deprecated features tend to stop receiving fixes before they stop shipping. Say in the policy whether deprecated features still get security fixes until removal. If not, say that too, so customers can plan. An unmaintained feature that is still enabled is an exposure customers should be told about. Also disable risky deprecated features by default once the notice period ends, rather than silently keeping them on.

Common mistakes

Removing something in a patch release. Announcing a deprecation only in a blog post. Leaving no migration path. See semantic versioning for security fixes for how to number the release that removes it.

If you want a second look at what you ship, Safeguard can generate and scan an SBOM and run dependency scanning with reachability analysis, and you can try the free scan.

Quick check

Can I remove a stable feature in a minor release?

The public model above does not allow removing GA features within a major version. Adopt the same rule or state a different one clearly.

Do deprecated features still get security fixes?

Decide and publish the answer. Silence leaves customers guessing.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.