Backwards-incompatible NOAA library change


Long Nguyen
 

Thanks for letting us know!

Long

On 3 Jun 2015 18:28, "Erik Jasiak" <ejasiak(a)pivotal.io> wrote:

Hi all,

On Thursday, June 4th at ~noon MDT, the Loggregator NOAA[1] Library will
introduce a backwards-incompatible change, after feedback from other teams
and the community. The NOAA library is used for consuming Cloud Foundry
Loggregator data, including the firehose. Any update via “go get” will
pull down these changes and will break compilations.

Details on the change:

NOAA is changing how it closes socket connections on requests.
Previously, the Close() function in consumer.go [2] did not behave as
expected - a client was required to close stopChan separately. Calling
Close() on a noaa.Consumer that was not stopped or in a retry loop would do
nothing.

Now calling Close() stops the consumer, and none of the APIs take a
stopChan. This is a much cleaner design that also works more in-line with
client expectations.

Other info:
The Go language maintainers have taken a position that a repository should
“never make backwards incompatible changes” [3]. We recognize that while
Go may have taken this position to anyone using “go get”, this makes
iterating on a community API difficult. We will explore with the Cloud
Foundry and Go communities how to better handle major API changes in the
future.

Many thanks,
Erik Jasiak
PM - Loggregator, Logging Analytics Metrics Boulder

[1] https://github.com/cloudfoundry/noaa
[2] https://github.com/cloudfoundry/noaa/blob/master/consumer.go#L55
[3] http://golang.org/doc/faq#get_version


_______________________________________________
cf-dev mailing list
cf-dev(a)lists.cloudfoundry.org
https://lists.cloudfoundry.org/mailman/listinfo/cf-dev


Erik Jasiak <ejasiak@...>
 

Hi all,

On Thursday, June 4th at ~noon MDT, the Loggregator NOAA[1] Library will
introduce a backwards-incompatible change, after feedback from other teams
and the community. The NOAA library is used for consuming Cloud Foundry
Loggregator data, including the firehose. Any update via “go get” will
pull down these changes and will break compilations.

Details on the change:

NOAA is changing how it closes socket connections on requests. Previously,
the Close() function in consumer.go [2] did not behave as expected - a
client was required to close stopChan separately. Calling Close() on a
noaa.Consumer that was not stopped or in a retry loop would do nothing.

Now calling Close() stops the consumer, and none of the APIs take a
stopChan. This is a much cleaner design that also works more in-line with
client expectations.

Other info:
The Go language maintainers have taken a position that a repository should
“never make backwards incompatible changes” [3]. We recognize that while
Go may have taken this position to anyone using “go get”, this makes
iterating on a community API difficult. We will explore with the Cloud
Foundry and Go communities how to better handle major API changes in the
future.

Many thanks,
Erik Jasiak
PM - Loggregator, Logging Analytics Metrics Boulder

[1] https://github.com/cloudfoundry/noaa
[2] https://github.com/cloudfoundry/noaa/blob/master/consumer.go#L55
[3] http://golang.org/doc/faq#get_version