August 2021 Release Notes - Version 21.8.0
August release, hot off the press:
New Features
- util-stats: add getAllExpressionsWithLabel utility to InMemoryStatsReceiver. 29602592
- util-app: Experimentally crossbuilds with Scala 3. 94f1fa37
- util-app-lifecycle: Experimentally crossbuilds with Scala 3. 5f67cddb
- util-codec: Experimentally crossbuilds with Scala 3. 35b00359
- util-hashing: Experimentally crossbuilds with Scala 3. b9ef5d06
- util-lint: Experimentally crossbuilds with Scala 3. 5b960dd1
- util-registry: Experimentally crossbuilds with Scala 3. 39b0355d
- util-thrift: Experimentally crossbuilds with Scala 3. 3a93c8c7
- util-app: Introduce a new Command class which provides a Reader interface to the output
of a shell command. 8b88bcc6
- util-core: Experimentally crossbuilds with Scala 3. d84bfbaa
Breaking API Changes
- util-app: Flags and GlobalFlag now use ClassTag instead of Manifest. 94f1fa37
- util-thrift: ThriftCodec now uses ClassTag instead of Manifest. In
scala3 Manifest is intended for use by the compiler and should not be used in
client code. 3a93c8c7
- util-core (BREAKING): Remove AbstractSpool. Java users should use Spools static class or
the Spool companion object to create instances of Spool. d84bfbaa
Runtime Behavior Changes
- util: Update ScalaCheck to version 1.15.4 1efeb9d9
- util-jackson: JsonDiff#toSortedString now includes null-type nodes, so that
JsonDiff.Result#toString shows differences in objects due to such nodes. cd03cf0d
Runtime Behavior Changes
- scrooge: Update ScalaCheck to version 1.15.4. scrooge-sbt-plugin and
scrooge-generator still use the older version 1.14.3 because they compile
with Scala 2.10. ad063665
New Features
- finagle-mysql: introduce newRichClient(dest: String, label: String) method, which removes the
need for extra boilerplate to convert the destination String to a c.t.finagle.Name when
specifying both dest and label in String form. c211bfbe
- finagle-http, finagle-thriftmux: introduce client.withSni() API. Use this api to specify an
SNI hostname for TLS clients. a8ec457b
Runtime Behavior Changes
- finagle: Update Caffeine cache library to version 2.9.1 d9e551a3
- finagle: Update ScalaCheck to version 1.15.4 145ab4aa
- finagle-core: change ServiceClosedException to extend FailureFlags and to be
universally retryable e621e5ff
finagle-http: remove the com.twitter.finagle.http.UseH2,
com.twitter.finagle.http.UseH2CClients2, com.twitter.finagle.http.UseH2CServers and
com.twitter.finagle.http.UseHttp2MultiplexCodecClient toggles. The configuration for
c.t.finagle.Http.client and c.t.finagle.Http.server now default to using the HTTP/2 based
implementation. To disable this behavior, use c.t.finagle.Http.client.withNoHttp2 and
c.t.finagle.Http.server.withNoHttp2 respectively.
Alternatively, new GlobalFlag’s have been introduced to modify the default behavior of clients
and servers that have not been explicitly configured, where
the com.twitter.finagle.http.defaultClientProtocol
and com.twitter.finagle.http.defaultServerProtocol flags can be set to HTTP/1.1 to modify
the default client or server configuration, respectively. PHAB_ID=D625880`
finagle-netty4: Finagle now reuses Netty “boss” (or parent) threads instead of creating a new
thread per server. Netty parent threads are servicing the server acceptor, a relatively
lightweight component that listens for new incoming connections before handing them out to the
global worker pool. 5e9998fc
finagle-http2: introduce optional parameter NackRstFrameHandling to enable or disable NACK
conversion to RST_STREAM frames. 728aed03
finagle-thrift, finagle-thriftmux: clients may start reporting (correctly) lower success rate.
Previously server exceptions not declared in IDL were erroneously considered as successes.
The fgix also improves failure detection and thus nodes previously considered as healthy
by failure accrual policy may be considered as unhealthy. 3bba41c6
Bug Fixes
- finagle-core: Add BackupRequestFilter to client registry when configured. 56092e96
- finagle-thrift, finagle-thriftmux: clients now treat server exceptions
not declared in IDL as failures, rather than successes,
and do not skip the configured response classifier for failure accrual.
3bba41c6
Fixed
- inject-core: Fixed a bug where c.t.inject.TestMixin#assertFailedFuture would incorrectly pass
for non-failed c.t.util.Future in some cases where the tested failure is a supertype of
org.scalatest.exceptions.TestFailedException. b1f14ebb
Breaking API Change
- inject-utils: Removed deprecated c.t.inject.conversions.string, use
c.t.conversions.StringOps in the util/util-core project instead. ceed4f4a
- inject-utils: Removed deprecated c.t.inject.conversions.tuple, use
c.t.conversions.TupleOps in the util/util-core project instead. 0c95c240
- inject-utils: Removed deprecated c.t.inject.conversions.seq, use
c.t.conversions.SeqOps in the util/util-core project instead. 8bd42557
- inject-utils: Removed implicit class RichMap from c.t.inject.conversions.map,
use c.t.conversions.MapOps in the util/util-core project instead. 19ad496a
Changed
- thrift: Update the test c.t.finatra.thrift.ThriftClient to close client and clean-up resources
during the EmbeddedTwitterServer close. e6c792ed
- finatra: Update ScalaCheck to version 1.15.4 f40869cd
Admin Endpoint Versions
- Bump metric_metadata.json to version 3.2: CounterishGauge now exports with
“kind”: “counterish_gauge”, instead of “counterish_gauge”: “true”
93121600.
- Bump expressions.json to version 1.1: the labels field in the Metric
Metadata Expressions output to return a dictionary instead of a well-defined
JSON object. However, the existing fields in labels will be preserved for
now. 4cda5ed0
Runtime Behavior Changes
- Update ScalaCheck to version 1.15.4 2bd4d8b5