FYI: cf CLI moving to noaa only, and other changes on older CF releases (<v197)
Koper, Dies <diesk@...>
Hi cf CLI users,
Over six months ago I shared with you our intent to remove the bundled loggregator_consumer library from the cf CLI as it has been deprecated.
No-one contacted us with concerns - I suspect no one would be affected.
This work has now been completed and as announced with the previous two cf CLI releases, will be part of the upcoming cf CLI 6.24.0 release.
You may experience degraded functionality when targeting CF releases older than CF v203 (released March 2015).
We want to take advantage of this opportunity and remove other code branches that are only executed when targeting even older CF releases:
* Commands that interact with domains are affected when targeting CC API versions <2.0.1 (`cf push`, routes & domains commands)
It is difficult to determine the exact CF release version and impact as the published CC V2 API docs don't go back that far. CC API 2.0.1 was incorporated somewhere before [CF v190 (released in Oct 2014)](https://github.com/cloudfoundry/cf-release/releases/tag/v190).
* The `cf space-users` command is affect when targeting CC API <2.21.0 (CF release v197, released in Jan 2015) and will return an error.
Note that we have documented our versioning policy here, hopefully answering any questions you have about our thoughts about compatibility with older CF releases:
Cloud Foundry Product Manager - CLI
From: Koper, Dies [mailto:diesk(a)fast.au.fujitsu.com]
Sent: Thursday, July 21, 2016 9:24 AM
Subject: [cf-dev] FYI: cf CLI moving to noaa only
Hey cf CLI users,
The current cf CLI includes both the noaa and the loggregator_consumer libraries to talk to the respective loggregator server endpoints:
If you target a CF release of v212 or higher it uses noaa, if lower than v212 it uses loggregator_consumer.
With the recent announcement that the Loggregator Consumer library has been deprecated and is no longer supported, we would like to remove this library from future cf CLI releases.
The impact of this is that commands that talk to the loggregator on CF releases older than v212 may fail.
The Loggregator team believes the cf CLI could actually use the noaa library to talk to CF releases as old as v203 (released March 2015 - CF releases before that have some concerning bugs relating to logging).
The cf CLI currently switches at v212 because it is since that version that the Doppler endpoint (the endpoint the noaa library talks to) has been published in /v2/info (the CC API the cf CLI obtains the loggregator's API endpoints from).
We could remove this switch, deduct the Doppler endpoint url on pre-v212 CF releases and always use noaa.
Additionally, the CLI could further display a warning when targeting a CF release older than cf 203 about potential degraded functionality.
Finally, we can remind people in our release notes for several versions about this change.
We have seen so few if any users on this list recently who mention still working with CF release versions that old.
We therefore believe the considerable time and effort it would take to perform extensive testing with older CF releases to discover what functionality is degraded exactly and how, is not warranted.
But the cf CLI is community input driven - if you do encounter any issues, you are welcome to report them in our GitHub tracker and we will look into them.
If you anticipate any issues already now with the above approach, please let us know.
Why isn't this a major version bump?
We try to comply with SemVer versioning for the cf CLI. The spec itself is open to interpretation whether this warrants a major version bump:
On the one hand, for people targeting these old CF releases, we're breaking the CLI.
On the other hand, SemVer defines it as "backwards incompatible changes (...) introduced to the public API" -- the CLI syntax and behaviour for all commands aren't changing. `cf logs` command won't change to do something else (it simply will stop supporting some older environments).
By not doing a major version bump we want to make it clear that you don't have to prepare yourself for new workflows, edit all your scripts or expect any UX changes whatsoever.
Cloud Foundry Product Manager - CLI