# 2020.0.4

[All Issues](https://github.com/orgs/spring-cloud/projects/64)

2021-09-22

- Spring Cloud Cloudfoundry `3.0.2`
- Spring Cloud Config `3.0.5`
- Spring Cloud Contract `3.0.4`
- Spring Cloud Consul `3.0.4`
- Spring Cloud Gateway `3.0.4`
- Spring Cloud Netflix `3.0.4`
- Spring Cloud Vault `3.0.4`
- Spring Cloud Kubernetes `2.0.4`
- Spring Cloud Circuitbreaker `2.0.2`
- Spring Cloud Bus `3.0.3`
- Spring Cloud Cli `3.0.3`
- Spring Cloud Zookeeper `3.0.4`
- Spring Cloud Sleuth `3.0.4`
- Spring Cloud Starter Build `2020.0.4`
- Spring Cloud Task `2.3.2`
- Spring Cloud Commons `3.0.4`
- Spring Cloud Openfeign `3.0.4`


# 2020.0.3

## Breaking changes

Actuator is no longer a required dependency of config server [1742](https://github.com/spring-cloud/spring-cloud-config/issues/1742)

[All Issues](https://github.com/orgs/spring-cloud/projects/61)

2021-05-28

- Spring Cloud Cloudfoundry `3.0.2`
- Spring Cloud Config `3.0.4` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/89?closed=1))
- Spring Cloud Contract `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/77?closed=1))
- Spring Cloud Consul `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-consul/milestone/57?closed=1))
- Spring Cloud Gateway `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-gateway/milestone/51?closed=1))
- Spring Cloud Netflix `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/102?closed=1))
- Spring Cloud Vault `3.0.3`
- Spring Cloud Kubernetes `2.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-kubernetes/milestone/31?closed=1))
- Spring Cloud Circuitbreaker `2.0.2`
- Spring Cloud Bus `3.0.3`
- Spring Cloud Cli `3.0.3`
- Spring Cloud Zookeeper `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-zookeeper/milestone/37?closed=1))
- Spring Cloud Sleuth `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/90?closed=1))
- Spring Cloud Starter Build `2020.0.3`
- Spring Cloud Task `2.3.2`
- Spring Cloud Commons `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-commons/milestone/89?closed=1))
- Spring Cloud Openfeign `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-openfeign/milestone/36?closed=1))


This release makes it possible for all projects except for Spring Cloud Contract to use Spring Boot 2.5. Spring Boot 2.5 includes a major update of Groovy that can lead to various issues while using Spring Cloud Contract.

# 2020.0.2

[All Issues](https://github.com/orgs/spring-cloud/projects/53)

2021-03-17

- Spring Cloud Cloudfoundry `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-cloudfoundry/milestone/16?closed=1))
- Spring Cloud Commons `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-commons/milestone/87?closed=1))
- Spring Cloud Config `3.0.3` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/88?closed=1))
- Spring Cloud Contract `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/75?closed=1))
- Spring Cloud Consul `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-consul/milestone/56?closed=1))
- Spring Cloud Gateway `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-gateway/milestone/49?closed=1))
- Spring Cloud Netflix `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/100?closed=1))
- Spring Cloud Circuitbreaker `2.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-circuitbreaker/milestone/8?closed=1))
- Spring Cloud Zookeeper `3.0.2`
- Spring Cloud Kubernetes `2.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-kubernetes/milestone/30?closed=1))
- Spring Cloud Vault `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-vault/milestone/47?closed=1))
- Spring Cloud Task `2.3.1`
- Spring Cloud Sleuth `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/88?closed=1))
- Spring Cloud Bus `3.0.2`
- Spring Cloud Cli `3.0.2`
- Spring Cloud Starter Build `2020.0.2`
- Spring Cloud Openfeign `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-openfeign/milestone/34?closed=1))

# 2020.0.1

[All Issues](https://github.com/orgs/spring-cloud/projects/52)

2021-01-27

- Spring Cloud Openfeign `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-openfeign/milestone/33?closed=1))
- Spring Cloud Config `3.0.2` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/87?closed=1))
- Spring Cloud Commons `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-commons/milestone/86?closed=1))
- Spring Cloud Contract `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/74?closed=1))
- Spring Cloud Consul `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-consul/milestone/54?closed=1))
- Spring Cloud Gateway `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-gateway/milestone/48?closed=1))
- Spring Cloud Netflix `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/99?closed=1))
- Spring Cloud Zookeeper `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-zookeeper/milestone/34?closed=1))
- Spring Cloud Vault `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-vault/milestone/46?closed=1))
- Spring Cloud Kubernetes `2.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-kubernetes/milestone/29?closed=1))
- Spring Cloud Sleuth `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/87?closed=1))
- Spring Cloud Bus `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-bus/milestone/47?closed=1))
- Spring Cloud Cli `3.0.1` ([issues](https://github.com/spring-cloud/spring-cloud-cli/milestone/24?closed=1))
- Spring Cloud Starter Build `2020.0.1`

# 2020.0.0

## Known Issues

- 2020.0.0 Spring Cloud Consul: Retry support has not been added yet using `spring.config.import=consul:`. Follow the [issue here](https://github.com/spring-cloud/spring-cloud-consul/issues/703). The workaround is to use the old bootstrap style by including `spring-cloud-starter-bootstrap`.

Spring Cloud Config [3.0.1](https://github.com/spring-cloud/spring-cloud-config/milestone/85?closed=1) has been released to fix the issues below. Please use version 2020.0.1 which includes all the fixes below.

- 2020.0.0 Spring Cloud Config: Retry support is missing for `spring.config.import=configserver:`. Follow the issue [here](github.com/spring-cloud/spring-cloud-config/issues/1775). For a workaround, continue to use `bootstrap.{yml|properties}` and add a dependency on `spring-cloud-starter-bootstrap` to restore the old behavior.
- 2020.0.0 Spring Cloud Config: spring-cloud-config-dependencies imports a milestone of spring-vault. Follow the issue [here](github.com/spring-cloud/spring-cloud-config/issues/1776). See [a workaround here](https://github.com/spring-cloud/spring-cloud-config/issues/1776#issuecomment-749782456)
- 2020.0.0 Spring Cloud Config: using `spring.config.import` value of `spring.profiles.active` not being used. Follow the issue and see workarounds [here](https://github.com/spring-cloud/spring-cloud-config/issues/1777).
- 2020.0.0 Spring Cloud Config: Multi-document YAML and properties files from config server have the same property source name which leads to a missing property source. Follow the issue [here](https://github.com/spring-cloud/spring-cloud-config/issues/1778).

## Breaking changes

- As [announced](https://spring.io/blog/2019/12/23/spring-cloud-roadmap-and-hoxton-and-greenwich-maintenance-and-eol-announcements), the following modules have been removed from spring-cloud-netflix:
    - spring-cloud-netflix-archaius
    - spring-cloud-netflix-concurrency-limits
    - spring-cloud-netflix-core
    - spring-cloud-netflix-dependencies
    - spring-cloud-netflix-hystrix
    - spring-cloud-netflix-hystrix-contract
    - spring-cloud-netflix-hystrix-dashboard
    - spring-cloud-netflix-hystrix-stream
    - spring-cloud-netflix-ribbon
    - spring-cloud-netflix-sidecar
    - spring-cloud-netflix-turbine
    - spring-cloud-netflix-turbine-stream
    - spring-cloud-netflix-zuul
    - spring-cloud-starter-netflix-archaius
    - spring-cloud-starter-netflix-hystrix
    - spring-cloud-starter-netflix-hystrix-dashboard
    - spring-cloud-starter-netflix-ribbon
    - spring-cloud-starter-netflix-turbine
    - spring-cloud-starter-netflix-turbine-stream
    - spring-cloud-starter-netflix-zuul
    - Support for ribbon, hystrix and zuul was removed across the release train projects.

- Bootstrap, provided by spring-cloud-commons, is no longer enabled by default. If your project requires it, it can be re-enabled by properties or by a new starter.
    - To re-enable by properties set `spring.cloud.bootstrap.enabled=true` or `spring.config.use-legacy-processing=true`. These need to be set as an environment variable, java system property or a command line argument.
    - The other option is to include the new `spring-cloud-starter-bootstrap`.

- Support has been added for the new Spring Boot `spring.config.import` syntax for Config Server, Consul, Zookeeper and Vault. The existing properties to configure the different services are still supported but need to be put in `application.properties` or `application.yml`.
    - `spring.config.import=configserver:`
    - `spring.config.import=consul:`
    - `spring.config.import=zookeeper:`
    - `spring.config.import=vault:`

- Spring Cloud Consul removed the old tags-as-metadata functionality [issue](https://github.com/spring-cloud/spring-cloud-consul/issues/630)

- Previously the property to disable the Spring Cloud Config Client Health Indicator was `health.config.enabled=false`. It is now `management.health.config.enabled=false` following the Spring Boot convention.

- Spring Cloud Security was removed and code was moved to the individual Spring Cloud projects.

- The `spring-cloud-gateway-core` module was moved to `spring-cloud-gateway-server`. If you are using `spring-cloud-gateway-starter` this will not be an issue.

- The implementation of spring-cloud-bus was migrated to use spring-cloud-function instead of the legacy annotation-driven model. This should have minimal effect on users.

- `spring-cloud-stream` is now an optional dependency of `spring-cloud-bus`. If you are using a binder other than rabbitmq or kafka you will need to inclue the new `spring-cloud-starter-bus-stream`.

- Actuator endpoints with invalid characters (dashes) have been updated to remove them:
    - `bus-env` is now `busenv`
    - `bus-refresh` is now `busrefresh`
    - `service-registry` is now `serviceregistry`

- In Spring Cloud Config, the endpoints from the resource API that used the `useDefaultLabel` query parameter have [been removed](https://github.com/spring-cloud/spring-cloud-config/issues/1643).
- As [announced](https://spring.io/blog/2020/04/17/spring-cloud-2020-0-0-m1-released) Spring Cloud GCP is no longer part of the Spring Cloud release train

### Spring Cloud Kubernetes

#### Code Refactoring
* Code that was not dependent on any Kubernetes client was moved into a module name `spring-cloud-kubernetes-commons`
* Packages were renamed to be Fabric8 specific.  Any package that began with `org.springframework.cloud.kubernetes` has been renamed too `org.springframework.cloud.kubernetes.fabric8`

#### Kubernetes Client Implementations
* There are alternate implementations for much of the functionality in Spring Cloud Kubernetes using the [Kubernetes Java Client](https://github.com/kubernetes-client/java).

| Functionality      | Starter |
| ---------------- | --------------- |
| Kubernetes Detection      | spring-cloud-kubernetes-client       |
| Configuration   | spring-cloud-starter-kubernetes-client-config        |
| Loadbalancer   | spring-cloud-starter-kubernetes-client-loadbalancer        |
| Discovery   | spring-cloud-starter-kubernetes-client-all        |

NOTE:  When using the new Informer based DiscoveryClient you must give cluster wide permissions to the app due to [a bug in the Kubernetes Java Client](https://github.com/kubernetes-client/java/pull/1409)


#### Configuration Change Listener
* Classes related to event based and polling configuration change listeners have now been split up [PR 644](https://github.com/spring-cloud/spring-cloud-kubernetes/pull/644)

#### Renamed Starters

| Old Starter      | Renamed Starter |
| ---------------- | --------------- |
| spring-cloud-starter-kubernetes      | spring-cloud-starter-kubernetes-fabric8       |
| spring-cloud-starter-kubernetes-config   | spring-cloud-starter-kubernetes-fabric8-config        |
| spring-cloud-starter-kubernetes-all   | spring-cloud-starter-kubernetes-fabric8-all        |
| spring-cloud-starter-kubernetes-loadbalancer   | spring-cloud-starter-kubernetes-fabric8-loadbalancer        |


### Spring Cloud Sleuth

Most notable breaking changes:

#### `3.0.0-RC1`

##### Moving OpenTelemetry support to incubator

OpenTelemetry was unable to provide a reliable GA date of their modules. We've decided to remove OpenTelemetry support from Spring Cloud Sleuth and move it to incubator https://github.com/spring-cloud-incubator/spring-cloud-sleuth-otel/ . If you want to continue using OpenTelemetry with Spring Cloud Sleuth you need to add the Spring repositories, the `spring-cloud-sleuth-otel-dependencies` BOM and `spring-cloud-sleuth-otel-autoconfigure` dependency.

We have released a `1.0.0-M1` of Spring Cloud Sleuth OTel that is compatible with the `2020.0.0-RC1` release train.

.Maven
```xml
 <properties>
   <spring-cloud-sleuth-otel.version>1.0.0-M1</spring-cloud-sleuth-otel.version>
 </properties>

 <dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<!-- Provide the latest stable Spring Cloud release train version (e.g. 2020.0.0) -->
				<version>${release.train.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-sleuth-otel-dependencies</artifactId>
				<!-- Provide the version of the Spring Cloud Sleuth OpenTelemetry project -->
				<version>${spring-cloud-sleuth-otel.version}</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-sleuth-brave</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-sleuth-otel-autoconfigure</artifactId>
    </dependency>

		<!-- You 'll need those to add OTel support -->
		<repositories>
			<repository>
				<id>spring-snapshots</id>
				<url>https://repo.spring.io/snapshot</url>
				<snapshots><enabled>true</enabled></snapshots>
			</repository>
			<repository>
				<id>spring-milestones</id>
				<url>https://repo.spring.io/milestone</url>
			</repository>
		</repositories>
		<pluginRepositories>
			<pluginRepository>
				<id>spring-snapshots</id>
				<url>https://repo.spring.io/snapshot</url>
			</pluginRepository>
			<pluginRepository>
				<id>spring-milestones</id>
				<url>https://repo.spring.io/milestone</url>
			</pluginRepository>
		</pluginRepositories>
```

.Gradle
```
ext {
  springCloudSleuthOtelVersion = "1.0.0-M1"
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
        mavenBom "org.springframework.cloud:spring-cloud-sleuth-otel-dependencies:${springCloudSleuthOtelVersion}"
    }
}

dependencies {
    implementation("org.springframework.cloud:spring-cloud-starter-sleuth") {
        exclude group: 'org.springframework.cloud', module: 'spring-cloud-sleuth-brave'
    }
    implementation "org.springframework.cloud:spring-cloud-sleuth-otel-autoconfigure"
}

repositories {
    mavenCentral()
    maven {
            url "https://repo.spring.io/snapshot"
    }
    maven {
            url "https://repo.spring.io/milestone"
    }
    maven {
            url "https://repo.spring.io/release"
    }
}
```

#### `3.0.0-M6`

##### Modules

* New modules: `spring-cloud-sleuth-autoconfigure`, `spring-cloud-sleuth-api`, `spring-cloud-sleuth-instrumentation`
  `spring-cloud-sleuth-core` removed and changed to `spring-cloud-sleuth-instrumentation` & `spring-cloud-sleuth-api`
* Removed `spring-cloud-starter-sleuth-otel`
  To add OpenTelemetry support you need to add `spring-cloud-starter-sleuth` (adds Brave by default), exclude Brave and add `spring-cloud-sleuth-otel` dependency
* Except for the tests, `spring-cloud-sleuth-autoconfigure` is the only module that can have access to `@Configuration`, `@ConfiguraationProperties` classes.
  Tests have been added to ensure such separation.

##### Package moving

* `org.springframework.cloud.sleuth.api` -> `org.springframework.cloud.sleuth`
* `org.springframework.cloud.sleuth.brave.autoconfig` -> `org.springframework.cloud.sleuth.autoconfig.brave`
* `org.springframework.cloud.sleuth.otel.autoconfig` -> `org.springframework.cloud.sleuth.autoconfig.otel`
* `org.springframework.cloud.sleuth` -> `org.springframework.cloud.sleuth`
* Instrumentation: `org.springframework.cloud.sleuth.annotation` -> `org.springframework.cloud.sleuth.instrument.annotation`
* All the autoconfiguration classes were moved under `org.springframework.cloud/sleuth.autoconfig` package

##### Global class modifications

* Any class registered as a bean is now public

##### Classes

* `RateLimitingSampler` constructor changed
* Merged a lot of auto configuration classes into one (e.g. `BraveAutoConfiguration` now imports various other configurations)
* Renamed `TraceBraveAutoConfiguration` to `BraveAutoConfiguration`
* Renamed `TraceOtelAutoConfiguration` to `OtelAutoConfiguration`
* Removed all `NoOp` implementations of the API

To see the whole list check [this Github page](https://github.com/spring-cloud/spring-cloud-sleuth/issues?q=label%3A%22breaking+change%22+is%3Aclosed) and search for `3.0.0` milestones.

You can also check the [Sleuth 3.0.0 migration guide](https://github.com/spring-cloud/spring-cloud-sleuth/wiki/Spring-Cloud-Sleuth-3.0-Migration-Guide).

#### Up till `3.0.0-M5`

* Introduces abstraction over tracers [PR 1757](https://github.com/spring-cloud/spring-cloud-sleuth/pull/1757)
    * You can use Spring Cloud Sleuth's abstraction over Span's lifecycle [Check the docs](https://docs.spring.io/spring-cloud-sleuth/docs/3.0.x-SNAPSHOT/reference/html/using.html#using)
    * You can use Brave or OpenTelemetry directly
* Module change / removal
    * Point of entry should be `spring-cloud-starter-sleuth` (Brave support) or `spring-cloud-starter-otel` (OpenTelemetry support).
    * If you want to use Zipkin: `spring-cloud-starter-zipkin` is removed and you should replace is with `spring-cloud-sleuth-zipkin` dependency.
* Enable reactor manual instrumentation when in gateway breaking change enhancement [Issue 1710](https://github.com/spring-cloud/spring-cloud-sleuth/issues/1710)
* Remove the legacy Sleuth keys, span naming breaking change [Issue 1564](https://github.com/spring-cloud/spring-cloud-sleuth/issues/1564)
* Remove the legacy MDC entries and remain with the Brave MDC ones only breaking change enhancement [Issue 1221](https://github.com/spring-cloud/spring-cloud-sleuth/issues/1221)

# 2020.0.0-RC1

[All Issues](https://github.com/orgs/spring-cloud/projects/50)

2020-12-11

- Spring Cloud Circuitbreaker `2.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-circuitbreaker/milestone/7?closed=1))
- Spring Cloud Contract `3.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/73?closed=1))
- Spring Cloud Kubernetes `2.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-kubernetes/milestone/27?closed=1))
- Spring Cloud Commons `3.0.0-RC1`
- Spring Cloud Openfeign `3.0.0-RC1`
- Spring Cloud Cloudfoundry `3.0.0-RC1`
- Spring Cloud Security `3.0.0-RC1`
- Spring Cloud Bus `3.0.0-RC1`
- Spring Cloud Cli `3.0.0-RC1`
- Spring Cloud Zookeeper `3.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-zookeeper/milestone/32?closed=1))
- Spring Cloud Sleuth `3.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/85?closed=1))
- Spring Cloud Consul `3.0.0-RC1`
- Spring Cloud Starter Build `2020.0.0-RC1`
- Spring Cloud Gateway `3.0.0-RC1`
- Spring Cloud Netflix `3.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/97?closed=1))
- Spring Cloud Vault `3.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-vault/milestone/43?closed=1))
- Spring Cloud Config `3.0.0-RC1` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/83?closed=1))


# 2020.0.0-M6

[All Issues](https://github.com/orgs/spring-cloud/projects/49)

2020-12-01

- Spring Cloud Sleuth `3.0.0-M6` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/84?closed=1))
- Spring Cloud Consul `3.0.0-M6`
- Spring Cloud Gateway `3.0.0-M6`
- Spring Cloud Zookeeper `3.0.0-M6`
- Spring Cloud Config `3.0.0-M6`
- Spring Cloud Cloudfoundry `3.0.0-M6`
- Spring Cloud Netflix `3.0.0-M6`
- Spring Cloud Kubernetes `2.0.0-M6`
- Spring Cloud Circuitbreaker `2.0.0-M6`
- Spring Cloud Contract `3.0.0-M6` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/72?closed=1))
- Spring Cloud Starter Build `2020.0.0-M6`
- Spring Cloud Security `3.0.0-M6`
- Spring Cloud Bus `3.0.0-M6`
- Spring Cloud Cli `3.0.0-M6`
- Spring Cloud Vault `3.0.0-M6`
- Spring Cloud Openfeign `3.0.0-M6`
- Spring Cloud Commons `3.0.0-M6`

# 2020.0.0-M5

[All Issues](https://github.com/orgs/spring-cloud/projects/46)

2020-11-17

- Spring Cloud Consul `3.0.0-M5`
- Spring Cloud Gateway `3.0.0-M5`
- Spring Cloud Zookeeper `3.0.0-M5`
- Spring Cloud Sleuth `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/81?closed=1))
- Spring Cloud Cloudfoundry `3.0.0-M5`
- Spring Cloud Config `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/82?closed=1))
- Spring Cloud Kubernetes `2.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-kubernetes/milestone/24?closed=1))
- Spring Cloud Netflix `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/95?closed=1))
- Spring Cloud Starter Build `2020.0.0-M5`
- Spring Cloud Circuitbreaker `2.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-circuitbreaker/milestone/6?closed=1))
- Spring Cloud Contract `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/70?closed=1))
- Spring Cloud Security `3.0.0-M5`
- Spring Cloud Bus `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-bus/milestone/46?closed=1))
- Spring Cloud Cli `3.0.0-M5`
- Spring Cloud Openfeign `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-openfeign/milestone/30?closed=1))
- Spring Cloud Vault `3.0.0-M5`
- Spring Cloud Commons `3.0.0-M5` ([issues](https://github.com/spring-cloud/spring-cloud-commons/milestone/80?closed=1))




# 2020.0.0-M4

[All Issues](https://github.com/orgs/spring-cloud/projects/43)

2020-10-05

- Spring Cloud Sleuth `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/79?closed=1))
- Spring Cloud Consul `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-consul/milestone/51?closed=1))
- Spring Cloud Config `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/80?closed=1))
- Spring Cloud Kubernetes `2.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-kubernetes/milestone/21?closed=1))
- Spring Cloud Gateway `3.0.0-M4`
- Spring Cloud Circuitbreaker `2.0.0-M4`
- Spring Cloud Contract `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/68?closed=1))
- Spring Cloud Starter Build `2020.0.0-M4`
- Spring Cloud Netflix `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/92?closed=1))
- Spring Cloud Cloudfoundry `3.0.0-M4`
- Spring Cloud Security `3.0.0-M4`
- Spring Cloud Cli `3.0.0-M4`
- Spring Cloud Bus `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-bus/milestone/45?closed=1))
- Spring Cloud Zookeeper `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-zookeeper/milestone/31?closed=1))
- Spring Cloud Commons `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-commons/milestone/77?closed=1))
- Spring Cloud Openfeign `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-openfeign/milestone/25?closed=1))
- Spring Cloud Vault `3.0.0-M4` ([issues](https://github.com/spring-cloud/spring-cloud-vault/milestone/42?closed=1))




# 2020.0.0-M3

[All Issues](https://github.com/orgs/spring-cloud/projects/42)

2020-07-23

- Spring Cloud Sleuth `3.0.0-M3`
- Spring Cloud Kubernetes `2.0.0-M3`
- Spring Cloud Consul `3.0.0-M3`
- Spring Cloud Config `3.0.0-M3` ([issues](https://github.com/spring-cloud/spring-cloud-config/milestone/77?closed=1))
- Spring Cloud Gateway `3.0.0-M3`
- Spring Cloud Starter Build `2020.0.0-M3`
- Spring Cloud Circuitbreaker `2.0.0-M3`
- Spring Cloud Contract `3.0.0-M3` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/67?closed=1))
- Spring Cloud Cloudfoundry `3.0.0-M3`
- Spring Cloud Security `3.0.0-M3`
- Spring Cloud Netflix `3.0.0-M3`
- Spring Cloud Cli `3.0.0-M3`
- Spring Cloud Bus `3.0.0-M3`
- Spring Cloud Zookeeper `3.0.0-M3`
- Spring Cloud Commons `3.0.0-M3`
- Spring Cloud Vault `3.0.0-M3`
- Spring Cloud Openfeign `3.0.0-M3`


# 2020.0.0-M2

[All Issues](https://github.com/orgs/spring-cloud/projects/39)

2020-05-29

- Spring Cloud Netflix `3.0.0-M2`
- Spring Cloud Sleuth `3.0.0-M2`
- Spring Cloud Consul `3.0.0-M2`
- Spring Cloud Kubernetes `2.0.0-M2`
- Spring Cloud Gateway `3.0.0-M2` ([issues](https://github.com/spring-cloud/spring-cloud-gateway/milestone/38?closed=1))
- Spring Cloud Circuitbreaker `2.0.0-M2`
- Spring Cloud Contract `3.0.0-M2` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/65?closed=1))
- Spring Cloud Starter Build `2020.0.0-M2`
- Spring Cloud Config `3.0.0-M2`
- Spring Cloud Build `3.0.0-M2`
- Spring Cloud Cloudfoundry `3.0.0-M2`
- Spring Cloud Security `3.0.0-M2`
- Spring Cloud Bus `3.0.0-M2`
- Spring Cloud Cli `3.0.0-M2`
- Spring Cloud Vault `3.0.0-M2`
- Spring Cloud Zookeeper `3.0.0-M2`
- Spring Cloud Commons `3.0.0-M2`
- Spring Cloud Openfeign `3.0.0-M2`


# 2020.0.0-M1

2020-04-16

- Spring Cloud Netflix `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-netflix/milestone/88?closed=1))
- Spring Cloud Function `3.1.0.M1`
- Spring Cloud Sleuth `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-sleuth/milestone/74?closed=1))
- Spring Cloud Consul `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-consul/milestone/47?closed=1))
- Spring Cloud Kubernetes `2.0.0.M1`
- Spring Cloud Gateway `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-gateway/milestone/36?closed=1))
- Spring Cloud Circuitbreaker `2.0.0.M1`
- Spring Cloud Contract `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-contract/milestone/63?closed=1))
- Spring Cloud Starter Build `2020.0.0-M1`
- Spring Cloud Config `3.0.0.M1`
- Spring Cloud Build `3.0.0.M1`
- Spring Cloud Cloudfoundry `3.0.0.M1`
- Spring Cloud Security `3.0.0.M1`
- Spring Cloud Bus `3.0.0.M1`
- Spring Cloud Vault `3.0.0.M1`
- Spring Cloud Zookeeper `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-zookeeper/milestone/28?closed=1))
- Spring Cloud Commons `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-commons/milestone/72?closed=1))
- Spring Cloud Openfeign `3.0.0.M1` ([issues](https://github.com/spring-cloud/spring-cloud-openfeign/milestone/23?closed=1))


