Backwards-incompatible NOAA library change


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

Join cf-dev@lists.cloudfoundry.org to automatically receive all group messages.