Supported runtime and SDK releases

Runtime and SDK release support and upgrade policies

Introduction

This topic details the supported versions of Dapr releases, the upgrade policies and how deprecations and breaking changes are communicated in all Dapr repositories (runtime, CLI, SDKs, etc) at versions 1.x and above.

Dapr releases use MAJOR.MINOR.PATCH versioning. For example, 1.0.0.

VersioningDescription
MAJORUpdated when there’s a non-backward compatible change to the runtime, such as an API change. A MAJOR release can also occur then there is a considered a significant addition/change of functionality that needs to differentiate from the previous version.
MINORUpdated as part of the regular release cadence, including new features, bug, and security fixes.
PATCHIncremented for a critical issue (P0) and security hot fixes.

A supported release means:

  • A hoxfix patch is released if the release has a critical issue such as a mainline broken scenario or a security issue. Each of these are reviewed on a case by case basis.
  • Issues are investigated for the supported releases. If a release is no longer supported, you need to upgrade to a newer release and determine if the issue is still relevant.

From the 1.8.0 release onwards three (3) versions of Dapr are supported; the current and previous two (2) versions. Typically these are MINORrelease updates. This means that there is a rolling window that moves forward for supported releases and it is your operational responsibility to remain up to date with these supported versions. If you have an older version of Dapr you may have to do intermediate upgrades to get to a supported version.

There will be at least 6 weeks between major.minor version releases giving users a 12 week (3 month) rolling window for upgrading.

Patch support is for supported versions (current and previous).

Supported versions

The table below shows the versions of Dapr releases that have been tested together and form a “packaged” release. Any other combinations of releases are not supported.

Release dateRuntimeCLISDKsDashboardStatus
February 24 20231.10.2
1.10.0Java 1.8.0
Go 1.6.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 2.5.0
0.11.0Supported (current)
February 20 20231.10.1
1.10.0Java 1.8.0
Go 1.6.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 2.5.0
0.11.0Supported
February 14 20231.10.0
1.10.0Java 1.8.0
Go 1.6.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 2.5.0
0.11.0Supported
December 2nd 20221.9.5
1.9.1Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2
0.11.0Supported
November 17th 20221.9.4
1.9.1Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2
0.11.0Supported
November 4th 20221.9.3
1.9.1Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2
0.11.0Supported
November 1st 20221.9.2
1.9.1Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.1
.NET 1.9.0
JS 2.4.2
0.11.0Supported
October 26th 20221.9.1
1.9.1Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.1
.NET 1.9.0
JS 2.4.2
0.11.0Supported
October 13th 20221.9.0
1.9.1Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2
0.11.0Supported
October 26th 20221.8.6
1.8.1Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
October 13th 20221.8.5
1.8.1Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
August 10th 20221.8.4
1.8.1Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
July 29th 20221.8.3
1.8.0Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
July 21st 20221.8.2
1.8.0Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
July 20th 20221.8.1
1.8.0Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
July 7th 20221.8.0
1.8.0Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0
0.11.0Supported
October 26th 20221.7.5
1.7.0Java 1.5.0
Go 1.4.0
PHP 1.1.0
Python 1.6.0
.NET 1.7.0
JS 2.2.1
0.10.0Supported
May 31st 20221.7.4
1.7.0Java 1.5.0
Go 1.4.0
PHP 1.1.0
Python 1.6.0
.NET 1.7.0
JS 2.2.1
0.10.0Supported
May 17th 20221.7.3
1.7.0Java 1.5.0
Go 1.4.0
PHP 1.1.0
Python 1.6.0
.NET 1.7.0
JS 2.2.1
0.10.0Supported
Apr 22th 20221.7.2
1.7.0Java 1.5.0
Go 1.4.0
PHP 1.1.0
Python 1.6.0
.NET 1.7.0
JS 2.1.0
0.10.0Supported
Apr 20th 20221.7.1
1.7.0Java 1.5.0
Go 1.4.0
PHP 1.1.0
Python 1.6.0
.NET 1.7.0
JS 2.1.0
0.10.0Supported
Apr 7th 20221.7.0
1.7.0Java 1.5.0
Go 1.4.0
PHP 1.1.0
Python 1.6.0
.NET 1.7.0
JS 2.1.0
0.10.0Supported
Apr 20th 20221.6.2
1.6.0Java 1.4.0
Go 1.3.1
PHP 1.1.0
Python 1.5.0
.NET 1.6.0
JS 2.0.0
0.9.0Unsupported
Mar 25th 20221.6.1
1.6.0Java 1.4.0
Go 1.3.1
PHP 1.1.0
Python 1.5.0
.NET 1.6.0
JS 2.0.0
0.9.0Unsupported
Jan 25th 20221.6.0
1.6.0Java 1.4.0
Go 1.3.1
PHP 1.1.0
Python 1.5.0
.NET 1.6.0
JS 2.0.0
0.9.0Unsupported
Mar 25th 20221.5.2
1.6.0Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2
0.9.0Unsupported
Dec 6th 20211.5.1
1.5.1Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2
0.9.0Unsupported
Nov 11th 20211.5.0
1.5.0Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2
0.9.0Unsupported
Dev 6th 20211.4.4
1.4.0Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0
0.8.0Unsupported
Oct 7th 20211.4.3
1.4.0Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0
0.8.0Unsupported
Sep 24th 20211.4.2
1.4.0Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0
0.8.0Unsupported
Sep 22nd 20211.4.1
1.4.0Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0
0.8.0Unsupported
Sep 15th 20211.4
1.4.0Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0
0.8.0Unsupported
Sep 14th 20211.3.1
1.3.0Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0
0.7.0Unsupported
Jul 26th 20211.3
1.3.0Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0
0.7.0Unsupported

Upgrade paths

After the 1.0 release of the runtime there may be situations where it is necessary to explicitly upgrade through an additional release to reach the desired target. For example, an upgrade from v1.0 to v1.2 may need to pass through v1.1.

Note

Dapr only has a seamless guarantee when upgrading patch versions in a single minor version, or upgrading from one minor version to the next. For example, upgrading from v1.6.0 to v1.6.4 or v1.6.4 to v1.7.0 is guaranteed tested. Upgrading more than one minor version at a time is untested and treated as best effort.

The table below shows the tested upgrade paths for the Dapr runtime. Any other combinations of upgrades have not been tested.

General guidance on upgrading can be found for self hosted mode and Kubernetes deployments. It is best to review the target version release notes for specific guidance.

Current Runtime versionMust upgrade throughTarget Runtime version
1.5.0 to 1.5.2N/A1.6.0
1.6.01.6.2
1.6.21.7.5
1.7.51.8.6
1.8.61.9.5
1.6.0 to 1.6.2N/A1.7.5
1.7.51.8.6
1.8.61.9.5
1.7.0 to 1.7.5N/A1.8.6
1.8.61.9.5
1.8.0 to 1.8.6N/A1.9.5
1.9.0N/A1.9.5
1.10.0N/A1.10.2

Breaking changes and deprecations

Breaking changes

Breaking changes are defined as a change to any of the following that cause compilation errors or undesirable runtime behavior to an existing 3rd party consumer application or script after upgrading to the next stable minor version of a Dapr artifact (SDK, CLI, runtime, etc):

  • Code behavior
  • Schema
  • Default configuration value
  • Command line argument
  • Published metric
  • Kubernetes CRD template
  • Publicly accessible API
  • Publicly visible SDK interface, method, class, or attribute

Breaking changes can be applied right away to the following cases:

  • Projects versioned at 0.x.y
  • Preview feature
  • Alpha API
  • Preview or Alpha interface, class, method or attribute in SDK
  • Dapr Component in Alpha or Beta
  • Components-Contrib interface
  • URLs in Docs and Blog
  • An exceptional case where it is required to fix a critical bug or security vulnerability.

Process for applying breaking changes

There is a process for applying breaking changes:

  1. A deprecation notice must be posted as part of a release.
  2. The breaking changes are applied two (2) releases after the release in which the deprecation was announced.
    • For example, feature X is announced to be deprecated in the 1.0.0 release notes and will then be removed in 1.2.0.

Depreciations

Deprecations appear in release notes under a section named “Deprecations”, which indicates:

  • The point in the future the now-deprecated feature will no longer be supported. For example release x.y.z. This is at least two (2) releases prior.
  • Document any steps the user must take to modify their code, operations, etc if applicable in the release notes.

After announcing a future breaking change, the change will happen in 2 releases or 6 months, whichever is greater. Deprecated features should respond with warning but do nothing otherwise.

Announced deprecations

FeatureDeprecation announcementRemoval
GET /v1.0/shutdown API (Users should use POST API instead)1.2.01.4.0
Java domain builder classes deprecated (Users should use setters instead)Java SDK 1.3.0Java SDK 1.5.0
Service invocation will no longer provide a default content type header of application/json when no content-type is specified. You must explicitly set a content-type header for service invocation if your invoked apps rely on this header.1.7.01.9.0

Upgrade on Hosting platforms

Dapr can support multiple hosting platforms for production. With the 1.0 release the two supported platforms are Kubernetes and physical machines. For Kubernetes upgrades see Production guidelines on Kubernetes

Supported versions of dependencies

Below is a list of software that the latest version of Dapr (v1.10.2) has been tested against.

DependencySupported Version
KubernetesDapr support for Kubernetes is aligned with Kubernetes Version Skew Policy
Open Telemetry collector (OTEL)v0.4.0
Prometheusv2.28

Last modified February 24, 2023: Update daprdocs/content/en/operations/support/support-release-policy.md (d8602415)