Finagle v19.9.0 Release Notes

Release Date: 2019-09-10 // 14 days ago
  • 🆕 New Features

    • 🏗 finagle-{core,init,toggle,netty4}: Enables cross-build for 2.13.0. f21a54e0
    • finagle-base-http: Add None as a valid SameSite header value. 0c43561a

    💥 Breaking API Changes

    • ✅ finagle-core: The constructor on c.t.f.filter.NackAdmissionFilter used for testing that
      🚚 took an Ema.Monotime has been removed. 38fae802
    • finagle-core: The Adddress.ServiceFactory variant has been promoted from experimental
      🚚 status and moved to be properly part of c.t.f.Address. 68cf34b8
    • 🐎 finagle-http: improve performance of c.t.f.http.filter.StatsFilter. This results in two notable
      API changes: 1. There is a private[filter] constructor which can take a () => Long for
      determining the current time in milliseconds (the existing StatsFilter(StatsReceiver)
      0️⃣ constructor defaults to using Stopwatch.systemMillis for determining the current time in
      milliseconds. 2. The protected count(Duration, Response) method has been changed to
      private[this] count(Long, Response) and is no longer part of the public API.
      f6ce4529
    • finagle-partitioning: the hash-based routing that memcached uses has been relocated to a new
      top-level module so that it can be used more broadly across protocols. This results
      📦 in several classes moving to the c.t.f.partitioning package: 1. The Memcached.param.EjectFailedHost, KeyHasher, and NumReps parameters are now
      available under c.t.f.partitioning.param 2. The FailureAccrualException and CacheNode definitions are now in the c.t.f.paritioning
      📇 package. 3. The ZkMetadata class has moved to c.t.f.p.zk and the finagle-serverset module now depends
      on finagle-partitioning.
      f27073dc

    ⚙ Runtime Behavior Changes

    • finagle-http: c.t.f.http.service.NotFoundService has been changed to no longer
      🗄 use Request.response. Use of Request.response is deprecated and discouraged.
      acac9c38
    • finagle-mysql: Handshaking for the MySQL 'Connection Phase' now occurs as part of session
      acquisition. As part of this change, the
      com.twitter.finagle.mysql.IncludeHandshakeInServiceAcquisition toggle
      🚚 has been removed and it no longer applies. cd4877c1
    • ⬆️ finagle: Upgrade to Netty 4.1.39.Final. 001b0940
    • finagle-http: Enable Ping Failure Detection for MultiplexHandler based HTTP/2 clients. Note that
      🚚 the Ping Failure Detection implementation has been removed completely from the
      non-MultiplexHandler based HTTP/2 client. 8af32742
    • finagle: Added a dependency on Scala Collections Compat 2.1.2. f21a54e0

    🐛 Bug Fixes

    • 🚚 finagle-base-http: Removes the Cookie header of a c.t.f.http.Message whenever its cookie map
      becomes empty. f9b76a0f

Previous changes from v19.8.0

  • 💥 Breaking API Changes

    
    * finagle-core: The contents of the `c.t.f.dispatch.GenSerialClientDispatcher` object have been
      moved to the new `c.t.f.dispatch.ClientDispatcher` object. The stats receiver free constructors
      of `GenSerialClientDispatcher` and `SerialClientDispatcher` have been removed.
      ``PHAB_ID=D342883``
    
    * 🗄 finagle-thrift: The deprecated `ReqRepThriftServiceBuilder` object has been
      removed. Users should migrate to `ReqRepMethodPerEndpointBuilder`. ``PHAB_ID=D345740``
    
    ⚙ Runtime Behavior Changes
    
    • 🐧 finagle-core: Failed reads on Linux due to a remote peer disconnecting should now be properly seen as c.t.f.ChannelClosedException instead of a c.t.f.UnknownChannelException. PHAB_ID=D336428

    • ⬆️ finagle: Upgrade to Jackson 2.9.9. PHAB_ID=D345969

    • ⬆️ finagle: Upgrade to Netty 4.1.38.Final. PHAB_ID=D346259

    • 📦 finagle-base-http: Moved c.t.f.http.serverErrorsAsFailures out of its package object, which changes its name from com.twitter.finagle.http.package$serverErrorsAsFailures to com.twitter.finagle.http.serverErrorsAsFailures. PHAB_ID=D353045

    • 📦 finagle-thrift: Moved c.t.f.thrift.maxReusableBufferSize out of its package object, which changes its name from com.twitter.finagle.thrift.package$maxReusableBufferSize to com.twitter.finagle.thrift.maxReusableBufferSize. PHAB_ID=D353045