Finagle v18.2.0 Release Notes

  • 🆕 New Features

    
    * finagle-core: Add orElse to allow composition of `FailureAccrualPolicy`s.
      ``PHAB_ID=D131156``
    
    * finagle-core: `c.t.f.http.MethodBuilder` now exposes a method `newService` without a
      `methodName` to create a client. `c.t.f.thriftmux.MethodBuilder` now exposes a
      method `servicePerEndpoint` without a `methodName` to create a client. ``PHAB_ID=D131809``
    
    * 🔧 finagle-thriftmux: Expose the underlying configured client `label` in the
      `c.t.finagle.thriftmux.MethodBuilder`. ``PHAB_ID=D129109``
    
    🐛 Bug Fixes
    ~~~~~~~~~
    
    * finagle-http2: http2 servers no longer leak ping bodies. ``PHAB_ID=D130503``
    
    🗄 Deprecations
    
    • finagle-core: c.t.finagle.ssl.Ssl and related classes have been deprecated. They were replaced as the primary way of using SSL/TLS within Finagle in release 6.44.0 (April 2017). Please migrate to using c.t.f.ssl.client.SslClientEngineFactory or c.t.f.ssl.server.SslServerEngineFactory instead. PHAB_ID=D129692

    💥 Breaking API Changes

    
    * 🚚 finagle-base-http: `c.t.f.h.codec.HttpCodec` has been moved to the `finagle-http`
      project. ``PHAB_ID=D116364``
    
    * 🚚 finagle base-http: `c.t.f.h.Request.multipart` has been removed.
      Use `c.t.f.h.exp.MultipartDecoder` instead. ``PHAB_ID=D129158``
    
    * finagle-http: Split the toggle 'c.t.f.h.UseH2C' into a client-side toggle and a
      server-side toggle, named 'c.t.f.h.UseH2CClients', and 'c.t.f.h.UseH2CServers',
      respectively.  ``PHAB_ID=D130988``
    
    ⚙ Runtime Behavior Changes
    
    • finagle-core: Finagle clients with retry budgets or backoffs should no longer have infinite hash codes. PHAB_ID=D128594

    • ⚡️ finagle-core: c.t.f.l.Balancer no longer uses a c.t.f.u.Updater as its underlying concurrency primitive as it was found that in practice coalescing updates almost never happens and in the absence of that Updater imposes more overhead than simple synchronization while complicating the result of calling rebuild() since we don't know if the rebuild actually occurred by the time we attempt to use the distributor again. PHAB_ID=D126486