top | item 13775398

(no title)

friism | 9 years ago

We take backwards compatibility seriously. If you encounter problems updating from one version of Docker to the next (whether from 1.13.1 to 17.03 or from 17.03 to the upcoming 17.04), please open an issue on docker/docker so that can fix the incompatibility and improve our change process.

Quoting from the blog post:

    The Docker API version continues to be independent of the
    Docker platform version and the API version does not
    change from Docker 1.13.1 to Docker 17.03. Even with the
    faster release pace, Docker will continue to maintain 
    careful API backwards compatibility and deprecate APIs and 
    features only slowly and conservatively. And in Docker 
    1.13 introduced improved interoperability between clients 
    and servers using different API versions, including 
    dynamic feature negotiation.
- https://blog.docker.com/2017/03/docker-enterprise-edition/

discuss

order

pdeuchler|9 years ago

Docker takes backwards compatibility so seriously they wholesale block the client and server from communicating with each other if they differ by a single minor version.

Docker takes backwards compatibility so seriously they've released multiple versions of a docker registry all with completely new APIs.

Sorry if I don't buy it.

shykes|9 years ago

> Docker takes backwards compatibility so seriously they wholesale block the client and server from communicating with each other if they differ by a single minor version.

That has been fixed. Note that this limitation (although it turned out to be annoying, which is why we removed it), did not actually break reverse compatibility in the API. It just made the client excessively paranoid about reverse compatibility. In other words the client didn't trust the stability of the daemon enough, even though the daemon in pratice almost never broke compat.

> Docker takes backwards compatibility so seriously they've released multiple versions of a docker registry all with completely new APIs.

I'm not sure what you're referring to, but I will look into it. Is this still affecting you? Or is it a past problem you are still pissed off about?

thaJeztah|9 years ago

The quarterly ("stable channel") CE releases (17.03, 17.06 and so on) are supported for 4 months, and will not get new features during that period. EE quarterly releases have a 1 year support period, and also won't get new features.

During the support period, bug fixes will get back ported to those versions and released as "patch" releases (e.g. 17.03.1).

When installing, you can choose to install either the "stable" (quarterly) channel, or the "edge" (monthly) channel.

zegerjan|9 years ago

This seems to carefully avoid making any promises about the future. Where SemVer _does_ make promises.

Also, picking a date for versioning is weird as it doesn't contain any information other than when the Changelog was set in stone. Too bad this decision was made, and Docker choose not to value the stability of SemVer.

shykes|9 years ago

We most definitely WILL respect SemVer where it matters: the API versions.

Docker is a collection of many different components, exposing many different interfaces. Semver in Docker version doesn't make sense for the same reason it doesn't make sense in Ubuntu or Windows.