All Versions
148
Latest Version
Avg Release Cycle
29 days
Latest Release
47 days ago

Changelog History
Page 1

  • v20.5.0

    May 19, 2020

    ⚙ Runtime Behavior Changes

    
    * finagle: Bump jackson version to 2.11.0. ``PHAB_ID=D457496``
    
  • v20.4.1

    April 26, 2020

    🆕 New Features

    finagle-redis: Add ConnectionInitCommand stack to set database and password.
    9fe05301

    finagle-mysql: Add ConnectionInitSql stack to set connection init sql. bd4411dd

    ⚙ Runtime Behavior Changes

    • finagle-core: Requeued reqeuests due to the c.t.finagle.service.RequeueFilter will generate
      their own spanId. af490773

    🐛 Bug Fixes

    👷 finagle-core: Restrict OffloadFilter from allowing interruption of the work performed in the worker pool. This is to ensure that the worker thread isn't interruptible, which is a
    behavior of certain FuturePool implementations. f0af6ad7 59f9f2b5

    finagle-netty4: ChannelStatsHandler will now only count the first channel close(..) call when incrementing the closes counter. 3fa91944

    💥 Breaking API Changes

    🚚 finagle-toggle: Removed abstract type for c.t.finagle.Toggle, all Toggles are of type Int.
    🐎 This is to avoid Integer auto-boxing when calling Toggle.apply, thus to improve overall toggle performance. c81a87b0

    finagle-core: Retried requests due to the c.t.finagle.service.RetryFilter will generate their
    own spanId. 762471a0

  • v20.4.0

    April 01, 2020

    🆕 New Features

    
    * finagle-core: Add `Transport.sslSessionInfo` local context which provides access to
      the `SSLSession`, session id, cipher suite, and local and peer certificates.
      ``PHAB_ID=D459854``
    
    * finagle-thrift/thriftmux: Thrift and ThriftMux client side can set a sharable
      TReusableBuffer by `withTReusableBufferFactory`. ``PHAB_ID=D452763``
    
    * finagle: Server side TLS snooping has been added to all server implementations with the
      exception of Mux/ThriftMux. This feature allows a server to select between a cleartext
      and TLS connection based on identifying the initial bytes as a TLS record of type handshake.
      ``PHAB_ID=D436225``
    
    💥 Breaking API Changes
    
    • 📇 finagle-partitioning: Rename c.t.finagle.partitioning.CacheNode and CacheNodeMetadata to c.t.finagle.partitioning.PartitionNode and PartitionNodeMetadata. PHAB_ID=D448015

    • finagle-partitioning: Rename c.t.finagle.partitioning.KetamaClientKey to HashNodeKey PHAB_ID=D449929

    🐛 Bug Fixes

    
    * finagle-base-http: RequestBuilder headers use SortedMap to equalize keys in different caps.
      `setHeader` keys are case insensitive, the last one wins. ``PHAB_ID=D449255``
    
    ⚙ Runtime Behavior Changes
    
    • finagle-stats: JsonExporter now caches the regex matching, so that you only need to check the result of regex matching on new stats. PHAB_ID=D459391
  • v20.3.0

    March 08, 2020

    ⚙ Runtime Behavior Changes

    
    * finagle-netty4: When not using the JDK implementation, the Netty reference counted SSL
      types are used which move SSL cleanup out of the GC cycle, reducing pause durations.
      ``PHAB_ID=D442409``
    
    * ⬆️ finagle-netty4: Upgraded to Netty 4.1.47.Finale and netty-tcnative 2.0.29.Final. ``PHAB_ID=D444065``
    
    🐛 Bug Fixes
    
    • finagle-zipkin-scribe: add a logical retry mechanism to scribe's TRY_LATER response PHAB_ID=D441366

    • finagle-zipkin-scribe: scope logical stats under "logical" PHAB_ID=D445075

    💥 Breaking API Changes

    
    * ⚡️ finagle-zipkin-scribe: update the deprecated `FutureIface` to `MethodPerEndpoint` ``PHAB_ID=D441366``
    
    * 🚚 finagle-core: Removed `c.t.finagle.service.ShardingService`. ``PHAB_ID=D445176``
    
  • v20.2.1

    🆕 New Features

    
    * 👍 finagle-opencensus-tracing: Add support for providing a custom TextFormat for header
      propagation. ``PHAB_ID=D432003``
    
    ⚙ Runtime Behavior Changes
    
    • 0️⃣ finagle-base-http: Support for the SameSite cookie attribute is now on by default. This can be manipulated via the com.twitter.finagle.http.cookie.supportSameSiteCodec flag. This means that cookies that have a value other than Unset for the sameSite field will have the attribute encoded (by servers) and decoded (by clients). See this Chromium blog post for more information about the SameSite attribute. PHAB_ID=D426349

    • 🚚 finagle-core: The default NullTracer for ClientBuilder has been removed. Affected clients may now see tracing enabled by default via the Java ServiceLoader, as described in the Finagle User's Guide. PHAB_ID=D437948

    • 🌲 finagle-http2: The HTTP/2 frame logging tools now log at level INFO. This is symmetric with the behavior of the ChannelSnooper tooling which serves a similar purpose which is to aid in debugging data flow and isn't intended to be enabled in production. PHAB_ID=D441876

    🐛 Bug Fixes

    
    * finagle-http2: Initialize state in H2Pool before use in the gauge to avoid a
      NullPointerException. ``PHAB_ID=D428272``
    
    * finagle-http2: HTTP/2 server pipeline now traps close calls to ensure that
      events from the initial HTTP/1.x pipeline don't close the HTTP/2 session. For
      example, the initial pipeline was subject to session timeouts even though the
      tail of the socket pipeline was effectively dead. Closing of HTTP/2 server
      pipelines is now handled through the `H2ServerFilter`. ``PHAB_ID=D429554``
    
    * ⬆️ finagle-http2: HTTP/2 servers clean out unused channel handlers when upgrading
      from a HTTP/1.x pipeline, removing some traps such as unintended timeouts.
      ``PHAB_ID=D429416``
    
    * 🛠 finagle-opencensus-tracing: Fixed internal server error when invalid or no propagation headers
      are provided. ``PHAB_ID=D432003``
    
    * finagle-zipkin-scribe: export application metrics under a consistent `zipkin-scribe` scope. Finagle client
      stats under `clnt/zipkin-scribe` ``PHAB_ID=D432274``
    
    💥 Breaking API Changes
    
    • finagle-zipkin-scribe: Coalesce ScribeRawZipkinTracer apply methods into two simple ones. PHAB_ID=D432274

    • 🚚 finagle-zipkin-scribe: DefaultSampler moved to c.t.f.zipkin.core in finagle-zipkin-core. PHAB_ID=D439456

    • 📦 finagle-zipkin-scribe: initialSampleRate GlobalFlag is moved to finagle-zipkin-core, under the same package scope c.t.f.zipkin. PHAB_ID=D439456

  • v20.2.0

    🆕 New Features

    
    * 👍 finagle-opencensus-tracing: Add support for providing a custom TextFormat for header
      propagation. ``PHAB_ID=D432003``
    
    ⚙ Runtime Behavior Changes
    
    • 0️⃣ finagle-base-http: Support for the SameSite cookie attribute is now on by default. This can be manipulated via the com.twitter.finagle.http.cookie.supportSameSiteCodec flag. This means that cookies that have a value other than Unset for the sameSite field will have the attribute encoded (by servers) and decoded (by clients). See this Chromium blog post for more information about the SameSite attribute. PHAB_ID=D426349

    • 🚚 finagle-core: The default NullTracer for ClientBuilder has been removed. Affected clients may now see tracing enabled by default via the Java ServiceLoader, as described in the Finagle User's Guide. PHAB_ID=D437948

    🐛 Bug Fixes

    
    * finagle-http2: Initialize state in H2Pool before use in the gauge to avoid a
      NullPointerException. ``PHAB_ID=D428272``
    
    * finagle-http2: HTTP/2 server pipeline now traps close calls to ensure that
      events from the initial HTTP/1.x pipeline don't close the HTTP/2 session. For
      example, the initial pipeline was subject to session timeouts even though the
      tail of the socket pipeline was effectively dead. Closing of HTTP/2 server
      pipelines is now handled through the `H2ServerFilter`. ``PHAB_ID=D429554``
    
    * ⬆️ finagle-http2: HTTP/2 servers clean out unused channel handlers when upgrading
      from a HTTP/1.x pipeline, removing some traps such as unintended timeouts.
      ``PHAB_ID=D429416``
    
    * 🛠 finagle-opencensus-tracing: Fixed internal server error when invalid or no propagation headers
      are provided. ``PHAB_ID=D432003``
    
    * finagle-zipkin-scribe: export application metrics under a consistent `zipkin-scribe` scope. Finagle client
      stats under `clnt/zipkin-scribe` ``PHAB_ID=D432274``
    
    💥 Breaking API Changes
    
    • finagle-zipkin-scribe: Coalesce ScribeRawZipkinTracer apply methods into two simple ones. PHAB_ID=D432274

    • 🚚 finagle-zipkin-scribe: DefaultSampler moved to c.t.f.zipkin.core in finagle-zipkin-core. PHAB_ID=D439456

    • 📦 finagle-zipkin-scribe: initialSampleRate GlobalFlag is moved to finagle-zipkin-core, under the same package scope c.t.f.zipkin. PHAB_ID=D439456

  • v20.1.0

    January 29, 2020

    🆕 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.
      d42c87a9
    • 🏗 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
      180bb925

    💥 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
  • v19.12.0

    December 13, 2019

    🆕 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.
      ``PHAB_ID=D404869``
    
    ⚙ Runtime Behavior Changes
    
    • ⬆️ finagle: Upgrade to jackson 2.9.10 and jackson-databind 2.9.10.1 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`.
      ``PHAB_ID=D399947``
    
    * 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``
    
  • v19.11.0

    November 06, 2019

    🆕 New Features

    • finagle-base-http: The Uri class now provides access publicly to its
      path, which is the request uri without the query parameters.
      f40fe447
    • 👍 finagle-mysql: Adding native support to finagle-mysql for MySQL JSON Data Type. A client
      can now use jsonAsObjectOrNull[T] or getJsonAsObject[T] APIs on c.t.f.mysql.Row to
      read the underlying json value as type T or use jsonBytesOrNull API to get a raw byte
      array of the the json column value. 4d403051
    • ✅ MySQL integration tests can now run on a port other than the default (3306). Add a port
      ✅ property to .finagle-mysql/integration-test.properties to customize the value.
      4d403051

    ⚙ Runtime Behavior Changes

    • ⬆️ finagle: Upgrade to Netty 4.1.43.Final and netty-tcnative 2.0.26.Final. cfaaa471
    • 👍 finagle: Add initial support for JDK 11 compatibility. 04def84b
    • ⬆️ finagle: Upgrade to caffeine 2.8.0 c335b29e
    • ✨ finagle-http2: Nacks in the form of RST(STREAM_REFUSED | ENHANCE_YOUR_CALM) no
      longer surface as a RstException, instead opting for a generic Failure to be
      symmetric with the HTTP/1.x nack behavior. cb67fa33
    • 🚤 finagle-mux: The mux handshake latency stat has be changed to Debug
      verbosity. 0eb2cfb6
    • ⬇️ finagle-serversets: finagle/serverset2/stabilizer/notify_ms histogram has been downgraded to
      debug verbosity. 30d3d0ea

    💥 Breaking API Changes

    • 🚚 finagle-base-http: c.t.f.http.codec.HttpContext moved into c.t.f.http.codec.context.HttpContext
      cc29b265
  • v19.10.0

    October 08, 2019

    🆕 New Features

    
    * 🏗 finagle-partition: Enables cross-build for 2.13.0. ``PHAB_ID=D380444``
    
    * 🏗 finagle-exception: Enables cross-build for 2.13.0. ``PHAB_ID=D381107``
    
    * 🏗 finagle-exp: Enables cross-build for 2.13.0. ``PHAB_ID=D380497``
    
    * finagle-http: Expose header validation API to public. ``PHAB_ID=D381771``
    
    * 🏗 finagle-mysql: Enables cross-build for 2.13.0. ``PHAB_ID=D377721``
    
    * 🏗 finagle-{mux,thrift,thrift-mux}: Enables cross-build for 2.13.0. ``PHAB_ID=D373165``
    
    * 0️⃣ finagle-netty4: Add support to stop default Finagle Netty 4 Timer. ``PHAB_ID=D381605``
    
    * 🏗 finagle-redis: Enables cross-build for 2.13.0. ``PHAB_ID=D381107``
    
    * 🏗 finagle-tunable: Enables cross-build for 2.13.0. ``PHAB_ID=D373170``
    
    * 🏗 finagle-grpc-context: Enables cross-build for 2.13.0. ``PHAB_ID=D373168``
    
    * finagle-thrift: Pass a factory to create a TReusableBuffer as the parameter of a finagle client
      to allow multiple clients share one TReusableBuffer. ``PHAB_ID=D378466``
    
    * 🏗 finagle-zipkin-{core,scribe}: Enables cross-build for 2.13.0. ``PHAB_ID=D381675``
    
    ⚙ Runtime Behavior Changes
    
    • 🐎 finagle-base-http: Better performance for the default HeaderMap.add method for headers with the same name. PHAB_ID=D381142

    • finagle-http2: H2ServerFilter will no longer swallow exceptions that fire via exceptionCaught in the Netty pipeline. PHAB_ID=D369185

    • 🚚 finagle-http: Remove legacy HTTP/2 client implementation and make the MultiplexHandler-based implementation the default HTTP/2. PHAB_ID=D362950

    💥 Breaking API Changes

    
    * finagle-core: `c.t.f.l.FailureAccrualFactory`'s `didMarkDead()` changed to `didMarkDead(Duration)`.
      The `Duration` is the length of time the endpoint is marked dead. ``PHAB_ID=D369209``
    
    * 🚚 finagle-core: removed the `staticDetermisticApertureWidth` flag. The behavior is now as if the flag
      was set to `true` which was also the default behavior. ``PHAB_ID=D382779``
    
    🐛 Bug Fixes
    
    • finagle-mux: Mux now properly propagates Ignorable failures multiple levels for superseded backup requests. This allows for more accurate success rate metrics for downstream services, when using backup requests. PHAB_ID=D365729