Jul 2022 Release Notes - Version 22.7.0
This release comes with a delay, which was intentional. A few months ago, we’ve decided to slow down our release train and switch from releasing monthly (12 releases a year) to releasing quarterly (4 releases a year).
The next release should have been in November. However, looking at the team’s quite busy schedule throughout the rest of the year, it’s very unlikely we would be able to make time for one more release in 2022. The 2023 Q1 release is looking more realistic.
We’ll continue publishing nightly snapshots (versioned as 22.10.0-SNAPSHOT) and will cut a patch release should any security vulnerabilities be fixed. Otherwise, tune back in 2023!
New Features
- finagle-thrift: Changing visibility of InputBuffer and OutputBuffer from [finagle] to [twitter]. d56bb847
- finagle-core: Introduce panic mode in load balancers. Configure the threshold for
panic mode to start using withLoadBalancer.panicMode. c6060de8
- finagle-core: Provide ServerParamsInjector, a class that will be service-loaded at run-time
by Finagle servers, and will allow generic configuration of all sets of parameters.
f00434c1
- finagle-memcached: Add new function, newLoadBalancedTwemcacheClient, to create a TwemcacheClient
that doesn’t use a partitioning service.
eebf0821
Bug Fixes
- finagle-core: fix issue where Trace.traceLocal and Trace.traceLocalFuture nested traces mistakenly
annotate to the parent span. 77a7e774
Breaking API Changes
- finagle-core: Remove unused DeterministicAperture along with pathways to use weight-unaware
aperture loadbalancers. a5004ecc
- finagle-base-http: Methods for getting/setting Accept, Authorization, Host, Referer,
User-Agent, X-Forwarded-For headers were moved from c.t.f.http.Message class to
c.t.f.http.Request as these headers are only valid on requests and not on responses.
Methods for getting/setting Location, Retry-After, Server, and WWW-Authenticate headers
were moved from c.t.f.http.Message class to c.t.f.http.Response as they are only valid
on responses and not on requests.
- finagle-core: Update OffloadFilter.Param API to encourage recommended construction.
b684552f
- finagle-core: Trace.recordLocalSpan is private[this] and no longer protected. 77a7e774
- finagle-core: “ServiceFactory#status” is abstract and requires implementation in the inherited
classes. b2a7f4ea
- finagle-core: StackTransformer has been renamed to ServerStackTransformer and the symmetric
client equivalent (ClientStackTransformer) has been added. For those using the older StackTransformer
API you will both need to change the code (fix the extends) __and__ rename the META-INF file from
resources/META-INF/services/com.twitter.finagle.StackTransformer to
resources/META-INF/services/com.twitter.finagle.ServerStackTransformer in order to have your
transformer continue to service-load correctly. f5de196d
Runtime Behavior Changes
finagle-core: Changed the default implementation for random and deterministic aperture
load balancers to weighted aperture. f67c839c
finagle-partitioning: ThriftCustomPartitioningServices now allow fanning out the same
request to multiple partitions. 59381065
finagle-core: Rename the counter metric loadbalancer/max_effort_exhausted to
loadbalancer/panicked. a055f74b
finagle: Upgrade to Netty 4.1.76.Final and netty-tcnative 2.0.51.Final. c07a9b0b
finagle: Update Jackson library to version 2.13.3 92d39db2
finagle: Bump version of lz4-java to 1.8.0. 305c467c
finagle: Upgrade to Netty 4.1.78.Final and netty-tcnative 2.0.53.Final to support
tls tracing for finagle in [Pixie](https://pixie.dev/). The Pixie changes aren’t
complete yet, but upgrading netty is a prerequisite for that. d251883b\
Changed
- inject-utils|inject-thrift: Move package private methods PossiblyRetryable#isCancellation and
PossibleRetryable#isNonRetryable in inject-thrift to inject-utils ExceptionUtils as publicly
usable methods. These methods are generally useful when processing interrupts on Futures.
3d351450
Runtime Behavior Changes
inject-server: Remove deprecated c.t.inject.server.DeprecatedLogging trait. This trait was
introduced as a placeholder shim to ensure that JUL util-logging Flags were still defined within
a Finatra server such that servers did not fail upon startup if Flag values were being set.
The default behavior during Flag parsing is to error if a Flag value is passed for a Flag not
defined within the application.
We have removed the shim and the trait (and thus the Flag definitions), as it is not expected
that users use util-logging JUL Flags for logging configuration with Finatra servers since Finatra
uses the SLF4J-API. Logging configuration should be done on the choosen SLF4J-API logging
implementation. If your server fails to start after this change, please ensure you are not passing
values for the JUL util-logging Flags. 5b5ccf4f
Changed
finatra: Removed kafka
and kafka-streams
modules from finatra core library.
Note: We published a stand-alone finatra-kafka client
with deprecation announcement to serve as exit pathway for current users.
Announcement: finagle blog
27e2c9c4
Added
- finatra: Introduce InMemoryTracer for inspecting Trace information via tests. 0755b77e
Runtime Behavior Changes
- finatra: Update Jackson library to version 2.13.3 a4065f19
Breaking API Changes
- util-stats: SourceRole subtypes have been moved into the SourceRole object to make their
relationship to the parent type more clear. 633cf5b0
Runtime Behavior Changes
- util-jackson: Update Jackson library to version 2.13.3 8c96a442
- util-jackson: Deserialized case classes with validation on optional fields shouldn’t throw an error.
3b94d2e6
- util: Update snakeyaml to 1.28 d486a7da
- scrooge-generator: Introduce a AnnotatedFieldType to abstract type annotations from
FieldType definitions. Currently used to propagate thrift annotations inside of
collection types. 59e91e64 2fa68351
- scrooge-core: c.t.scrooge.ThriftUnion.fieldInfoForUnionClass API for retrieving
ThriftStructFieldInfo for a ThriftUnion member class without having to instantiate
it. 19809c22
- scrooge-generator: Add @.generated annotation to Swift generated code 8fd6a089
- scrooge-generator: Provide a \$STRUCT#unsetFields method to allow bulk unsets aef5029b
- scrooge-generator: support thrift validations on nested fields that are struct, union, and
exception 8bad4dd7
- Admin HTTP server is now on Finagle’s default HTTP protocol version, which supports
HTTP/1.1, HTTP/2 cleartext protocol upgrade, HTTP/2 prior-knowledge, and ALPN.
6b9bf60f