Finagle v20.1.0 Release Notes

Release Date: 2020-01-29 // 20 days ago
  • 🆕 New Features

    • ⬆️ finagle-memcached: Upgrade to Bijection 0.9.7. de0ec2c6
    • 🏗 finagle-opencensus-tracing: Enables cross-build for 2.13.0. fee83b10
    • 👍 finagle-thriftmux: Add support for automatically negotiating compression between a client
      🔧 and server. Off by default, clients and servers must be configured to negotiate.
    • 🏗 finagle-stats: Enables cross-build for 2.13.0. 4144d73c
    • 🏗 finagle-stats-core: Enables cross-build for 2.13.0. 4144d73c
    • 📇 finagle-serversets: Add generic metadata support in ServerSet. Add support for announcing the
      📇 generic metadata via ZkAnnouncer. Add support to resolve the generic metadata via Zk2Resolver

    💥 Breaking API Changes

    • 📇 finagle-partitioning: ZKMetadata case class has a new default argument breaking API for
      Java users. 180bb925
    • 📇 finagle-serversets: Endpoint case class has a new metadata argument. 180bb925

Previous changes from v19.12.0

  • 🆕 New Features

    * finagle-core, finagle-exp: Add annotations to ``DarkTrafficFilter`` to identify which span
      is dark, as well as which light span it correlates with. ``PHAB_ID=D402864``
    * finagle-core: Introduce `Trace#traceLocal` for creating local spans within a trace context.
    ⚙ Runtime Behavior Changes
    • ⬆️ finagle: Upgrade to jackson 2.9.10 and jackson-databind PHAB_ID=D410846

    • finagle-core: Per-method metrics on MethodBuilder are now created lazily, so if you have methods that you don't use, the associated metrics won't be exported. PHAB_ID=D400382

    • ⏪ finagle-mysql: The RollbackFactory no longer attempts to roll back if the underlying session is closed since it is highly unlikely to succeed. It now simply poisons the session and calls close. PHAB_ID=D408155

    • finagle-netty4: Change the 'connection_requests' metric to debug verbosity. PHAB_ID=D391289

    • finagle-serversets: Ensure ZkSession#retrying is resilient to ZK host resolution failure. PHAB_ID=D403895

    • finagle-thrift: Per-method metrics are now created lazily, so if you have methods on a Thrift service that you don't use, the associated metrics won't be exported. PHAB_ID=D400382

    • finagle-zipkin-core: Tracing produces microsecond resolution timestamps in JDK9 or later. PHAB_ID=D400661

    • finagle-core: Trace#time and Trace#timeFuture no longer generate timestamped annotations or silently discard timing information. They now instead generate a BinaryAnnotation containing the timing information. In order to also get timestamped Annotations for when the operation began and ended, use in conjunction with Trace#traceLocal. PHAB_ID=D404869

    💥 Breaking API Changes

    * finagle-core: The `RetryPolicy` companion object is no longer a `JavaSingleton`.
    * finagle-thrift: The RichClientParam constructors are now all either
      deprecated, so to construct it, you must call one of the RichClientParam.apply
      methods.  ``PHAB_ID=D400382``
    🗄 Deprecations
    • 🗄 finagle-core: Deprecate Tracing#record(message, duration) as it does not have the intended effect and silently discards any duration information in the resulting trace. Instead you should use either Tracing#recordBinary or a combination of Trace#traceLocal and Trace#time. PHAB_ID=D404869

    🐛 Bug Fixes

    * finagle-core: `ClosableService` client stack module that prevents the reuse of closed services
      when `FactoryToService` is not set. This is important for clients making use of the `newClient`
      api. ``PHAB_ID=D407805``