Bryce Anderson

@brycelanderson

Posted September 30, 2021

September 2021 Release Notes - Version 21.9.0

September release, hot off the press:

Util

New Features

  • util-jvm: Experimentally crossbuilds with Scala 3. bfdde071
  • util-stats: Counter, Gauge, and Stat can be instrumented with descriptions. 4e68dd09
  • util-cache: Experimentally crossbuilds with Scala 3. 22977aa0
  • util-cache-guava: Experimentally crossbuilds with Scala 3. 6131382e
  • util-routing: Experimentally crossbuilds with Scala 3. 9615a9f1
  • util-sl4j-api: Experimentally crossbuilds with Scala 3. e2368780
  • util-sl4j-jul-bridge: Experimentally crossbuilds with Scala 3. 16a4a945
  • util-stats: Experimentally crossbuilds with Scala 3. ea54f59c
  • util-zk-test: Experimentally crossbuilds with Scala 3. 86df882b
  • util-app: Flags parsing will now roll-up multiple flag parsing errors into a single error message. When an error is encountered, flag parsing will continue to collect parse error information instead of escaping on the first flag failure. After parsing all flags, if any errors are present, a message containing all of the failed flags and their error reason, along with the help usage message will be emitted. 0def519d

Runtime Behavior Changes

  • util: Bump version of Jackson to 2.11.4. 72b9ba1e
  • util: Bump version of json4s to 3.6.11. a9afb222

Breaking API Changes

  • util-app: the c.t.app.App#flags field is now a final def instead of a val to address override val scenarios where the c.t.app.App#flags are accessed as part of construction, resulting in a NullPointerException due to access ordering issues. The c.t.app.Flags class is now made final. The c.t.app.App#name field has changed from a val and is now a def. A new c.t.app.App#includeGlobalFlags def has been exposed, which defaults to true. The c.t.app#includeGlobalFlags def can be overridden to false (ex: override protected def includeGlobalFlags: Boolean = false) in order to skip discovery of GlobalFlags during flag parsing. b44e820c

Scrooge

Breaking API Changes

  • scrooge-generator: Dropped the generic (higher-kinded-types) service interface in scala-gen, users are recommended to use YourService.MethodPerEndpoint, YourService.ServicePerEndpoint and YourService.ReqRepServicePerEndpoint to represent Thrift service endpoints. Note, -finagle option is required to generated finagle binding code. 8d768ca6
  • scrooge-generator: Removed YourService.FutureIface and YourService[Future] in scala-gen, use \$YourService.MethodPerEndpoint instead. Correspondingly, YourService\$FinagleService and related constructors taking MethodPerEndpoint as parameters. 8d768ca6
  • Scrooge-generator: Dropped ThriftServiceBuilder.build and MethodIfaceBuilder.newMethodIface. 8d768ca6
  • scrooge-generator: Add reserved keywords to ThriftParser. If your field names match these keywords, you may need to modify them. This change should not affect backwards and forwards compatiblility if using binary protocol for serde. 884f3603

Finagle

Breaking API Changes

  • finagle-thrift: Removed c.t.finagle.thrift.ThriftClient#newMethodIface and ThriftClient#thriftService, use c.t.f.thrift.ThriftClient#methodPerEndpoint. fc21cccf

Bug Fixes

  • finagle-core/partitioning: Close balancers and their gauges when repartitioning. d0bd053d

Runtime Behavior Changes

  • finagle: Upgrade to Netty 4.1.67.Final and netty-tcnative 2.0.40.Final. c373fc08
  • finagle: Downgrade to Netty 4.1.66.Final cbfbef89
  • finagle: Bump version of Jackson to 2.11.4. 19750a80
  • finagle-core: OffloadFilter hands off work from Netty I/O thread to the offload CPU thread pool right after we enter the Finagle stack by default. Previously this could be enabled via a toggle. The com.twitter.finagle.OffloadEarly toggle has been removed. 2b5086fe

Finatra

Breaking API Change

  • finatra-thrift: Removed c.t.finatra.thrift.ThriftClient#thriftClient, use #methodPerEndpoint. ed7ffac4

Runtime Behavior Changes

  • finatra: Bump version of Logback to 1.2.6. 42cb5fc3
  • finatra: Bump version of Jackson to 2.11.4. dff47602
  • finatra: Bump version of Joda-Time to 2.10.10. 4906eab1
  • finatra: Bump version of logback to 1.2.5. 9eaa5f9d
  • finatra: Bump version of json4s to 3.6.11. 496d0e7d

Twitter Server

Runtime Behavior Changes

  • Bump version of Logback to 1.2.6. 4a1930f0
  • Bump version of Jackson to 2.11.4. b4a8b44f
  • Bump version of logback to 1.2.5. 0a2bfd6d