All Versions
151
Latest Version
Avg Release Cycle
28 days
Latest Release
3 days ago

Changelog History
Page 1

  • v20.8.0

    August 11, 2020

    ⚙ Runtime Behavior Changes

    
    * finagle-netty4-http: Post, Put, Patch non-streaming outbound requests with empty bodies will
      be added the `Content-Length` header with value `0`. ``PHAB_ID=D518010``
    
    * finagle-core: A ServiceFactory created by ServiceFactory.const/constant propagates the wrapped
      service status. ``PHAB_ID=D520598``
    
    * 🛰 finagle-http: `c.t.f.http.filter.PayloadSizeFilter` no longer adds an annotation on each
      streaming chunk and instead aggregates the byte count and adds a single record on stream
      termination. ``PHAB_ID=D522543``
    
    * finagle-zipkin-scribe: zipkin scribe `log_span` prefix replaced with `scribe`. `zipkin-scribe/scribe/<stats>`. ``PHAB_ID=D527531``
    
    🆕 New Features
    
    • finagle-core: introduce type-safe ReqRep variant PHAB_ID=D520027

    • finagle-core: Added a new variant of Filter.andThenIf which allows passing the parameters as individual parameters instead of a Scala tuple. PHAB_ID=D523010

    • finagle-core: new metric (counter) for traces that are sampled. finagle/tracing/sampled PHAB_ID=D522355

    • finagle-netty4: Add the c.t.f.netty4.Netty4Listener.MaxConnections param that can be used to limit the number of connections that a listener will maintain. Connections that exceed the limit are eagerly closed. PHAB_ID=D517737

    • finagle-thrift: Added java-friendly c.t.f.thrift.exp.partitioning.ClientHashingStrategy and c.t.f.thrift.exp.partitioning.ClientCustomStrategy create methods, and added java-friendly c.t.f.thrift.exp.partitioning.RequestMergerRegistry#addRequestMerger and c.t.f.thrift.exp.partitioning.ResponseMergerRegistry#addResponseMerger to make partitioning easier to use from Java. PHAB_ID=D525770

    💥 Breaking API Changes

    
    * finagle-core: `ReqRep` can no longer be created via `new ReqRep(..)`. Please use
      `ReqRep.apply(..)` instead.
      ``PHAB_ID=D520027``
    
    * ⚡️ finagle-thrift: Updated the `c.t.f.thrift.exp.partitioning.ClientHashingStrategy` and the
      `c.t.f.thrift.exp.partitioning.ClientCustomStrategy` to take constructor arguments instead
      of needing to override methods on construction. ``PHAB_ID=D525770``
    
    * 🚚 finagle-zipkin-core: Removed unused `statsReceiver` constructor argument from `RawZipkinTracer`. ``PHAB_ID=D527531``
    
  • v20.7.0

    July 22, 2020

    20.7.0

    💥 Breaking API Changes

    • finagle-core: Correct the spelling of Tracing.recordClientSendFrargmet() to
      Tracing.recordClientSendFragment() 30726c01
    • finagle-redis: Use StrictKeyCommand for XDEL d174f9d6
    • finagle-toggle: Toggle.isDefinedAt(i: Int) has become Toggle.isDefined. Additionally, a new method Toggle.isUndefined has been added. 3bb78ce8
    • 🚚 finagle-zipkin-scribe: The scribe.thrift file was moved to finagle-thrift/src/main/thrift under a new
      namespace. com.twitter.finagle.thrift.scribe.(thrift|thriftscala) 01a20b79

    🐛 Bug Fixes

    • 🔧 finagle-zipkin-scribe: The scribe client should be configured using the NullTracer. Otherwise, spans
      produced by the client stack will be sampled at initialSampleRate. 0446dd3e
  • v20.6.0

    June 24, 2020

    ⚙ Runtime Behavior Changes

    • finagle-core: FailFastFactory is now disabled at runtime when a client's destination has only
      one endpoint, since the client cannot do anything meaningful by breaking the circuit early.
      0️⃣ This is recommended as a best practice anyway, now it's the default behavior. Less things
      🔧 to configure and worry about! f2c100e8
    • 🛠 finagle-core: namer annotations are prefixed with "clnt/". c8680fff
    • finagle-core: namer.success & namer.failure are not annotated as they are not request based.
      🚚 namer.tree annotation was also removed to reduce the size of traces. c8680fff
    • finagle-core: The offload filter client annotation is annotated under the child request span instead of
      its parent. The offload filter annotations are also changed to be binary annotations with the key
      (clnt|srv)/finagle.offload_pool_size and the value being the pool size 011f096d
    • finagle-memcached: The key in RetrievalCommand are ommited in traces. The total number of Hits
      and Misses are annotated via a counter instead under clnt/memcached.(hits/misses) 6fd0e2c9

    💥 Breaking API Changes

    • finagle-core: Migrated List[Tracer] to Seq[Tracer] in Tracing, and tracersCtx.
      cb06890b
    • 🛰 finagle-core: PayloadSizeFilter and WireTracingFilter are now public APIs.
      fc1951a5
    • finagle-zipkin-core: initialSampleRate flag will now fail if the sample rate is not in the range
      [0.0, 1.0]. 180f333c
    • 🛠 finagle-mysql: mysql client annos are prefixed with clnt/ 37d55c2a

    🆕 New Features

    • finagle-thrift: Expose c.t.f.thrift.exp.partitioning.PartitioningStrategy,
      the bundled PartitioningStrategy APIs are public for experiments.
      bf1d47be
    • finagle-http: Add LoadBalancedHostFilter to allow setting host header after LoadBalancer
      5304ce69
    • finagle-core: Trace the request's protocol identified by the ProtocolLibrary of the client
      stack. This is annotated under clnt/finagle.protocol. 464bbeb6
    • finagle-core: Add letTracers to allow setting multiple tracers onto the tracer stack.
      cb06890b
    • finagle-core: DeadlineFilter now exposes a metric admission_control/deadline/remaining_ms
      which tracks the remaining time in non-expired deadlines on the server side. An increase in this
      🚤 stat, assuming request latency is constant and timeout configurations upstream have not changed,
      may indicate that upstream services have become slower. 939f9a3e
    • finagle-redis: Make partitionedClient accessible. 7ba107e1
    • finagle-core, finagle-http, finagle-thriftmux: introduce MethodBuilder maxRetries
      🔧 configuration. A ThriftMux or HTTP method can now be configured to allow a specific number of
      🔧 maximum retries per request, where the retries are gated by the configured RetryBudget. This
      🔧 configuration can be applied via Http.client.methodBuilder(name).withMaxRetries(n) or
      ThriftMux.client.methodBuilder(name).withMaxRetries(n). 4328896d
    • finagle-memcached: Annotate the shard id of the backend the request will reach. 6fd0e2c9

    🐛 Bug Fixes

    • 🚚 finagle-zipkin-core: Remove flush and late-arrival annotations, which artificially extend
      trace durations. 967ef1fc
    • finagle-core: namer annotations are added at the Service level instead of ServiceFactory as
      traces are intended to be request based c8680fff
  • 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