Changelog History
Page 1
-
v22.4.0 Changes
๐ฅ Breaking API Changes
* ๐ util-stats: The metric instantiation methods have been removed from `MetricBuilder`. Use the methods on `StatsReceiver` to instantiate metrics instead. ``PHAB_ID=D859036``
-
v22.3.0 Changes
๐ Deprecations
* ๐ util-stats: Deprecated methods on `MetricBuilder` for directly instantiating metrics so that we can eventually remove the `statsReceiever` field from `MetricBuilder` and let it just be the source of truth for defining a metric. ``PHAB_ID=D862244``
-
v22.2.0 Changes
๐ New Features
* util-core: Added `Memoize.classValue` as a Scala-friendly API for `java.lang.ClassValue`. ``PHAB_ID=D825673`` * util-jvm: Register JVM expression including memory pool usages (including code cache, compressed class space, eden space, sheap, metaspace, survivor space, and old gen) and open file descriptors count in StatsReceiver. ``PHAB_ID=D820472`` * util-slf4j-jul-bridge: Add `Slf4jBridge` trait which can be mixed into extensions of `c.t.app.App` in order to attempt installation of the `SLF4JBridgeHandler` via the `Slf4jBridgeUtility` in the constructor of the `c.t.app.App` instance. ``PHAB_ID=D827493`` โ Runtime Behavior Changes
util: Bump version of Jackson to 2.13.2.
PHAB_ID=D848592
โก๏ธ util-slf4j-api: Update the
Logger
API to include "call-by-name" method variations akin to theLogging
trait. When creating aLogger
from a Scala singleton object class, the resultant logger name will no longer include the$
suffix. Remove the deprecatedLoggers
object which is no longer needed for Java compatibility as users can now directly use theLogger
apply functions with no additional ceremony.PHAB_ID=D820252
util: Bump version of Caffeine to 2.9.3.
PHAB_ID=D815761
๐ฅ Breaking API Changes
* ๐ util-core: The `c.t.util.Responder` trait has been removed. ``PHAB_ID=D824830``
-
v22.1.0 Changes
๐ฅ Breaking API Changes
* ๐จ util-jackson: The error message when failing to deserialize a character now correctly prints the non-character string. ``PHAB_ID=D808049`` โ Runtime Behavior Changes
util: Bump version of Jackson to 2.13.1.
PHAB_ID=D808049
๐ป util-core: Return suppressed exception information in Closable.sequence
PHAB_ID=D809561
-
v21.12.0 Changes
๐ฅ Breaking API Changes
* util-core: `Activity.collect*` and `Var.collect*` are now implemented in terms of known collection type `scala.collection.Seq` versus HKT `CC[X]` before. This allows for certain performance enhancements as well as makes it more aligned with the `Future.collect` APIs. ``PHAB_ID=D795123``
-
v21.11.0 Changes
๐ฅ Breaking API Changes
* ๐ util-security: Use snakeyaml to parse yaml instead of a buggy custom yaml parser. This means that thrown IOExceptions have been replaced by YAMLExceptions. Additionally, the parser member has been limited to private visibility. ``PHAB_ID=D617641`` ๐ New Features ~~~~~~~~~~~~ * ๐ util-security: Any valid yaml / json file with string keys and values can be loaded with `com.twitter.util.security.Credentials`. ``PHAB_ID=D617641`` โ Runtime Behavior Changes
โก๏ธ util-cache: Update Caffeine cache library to version 2.9.2
PHAB_ID=D771893
util-jackson: Enable
BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES
in ScalaObjectMapper to guard against Remote Code Execution (RCE) security vulnerability. This blocks polymorphic deserialization from unsafe base types.PHAB_ID=D780863
-
v21.10.0 Changes
๐ New Features
* util-core: Add convenience methods to convert to java.time.ZonedDateTime and java.time.OffsetDateTime. `toInstant`, `toZonedDateTime`, and `toOffsetDateTime` also preserve nanosecond resolution. ``PHAB_ID=D757636`` * ๐ util-stats: Moved `c.t.finagle.stats.LoadedStatsReceiver` and `c.t.finagle.stats.DefaultStatsReceiver` from the finagle-core module to util-stats. ``PHAB_ID=D763497`` * โก๏ธ util-jvm: Update exported metric schemas to properly reflect their underlying counter types ``PHAB_ID=D710019``
-
v21.9.0 Changes
๐ New Features
* util-jvm: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D728602`` * util-stats: Counter, Gauge, and Stat can be instrumented with descriptions. ``PHAB_ID = D615481`` * util-cache: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D714304``. * util-cache-guava: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D716101``. * util-routing: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D727120`` * util-sl4j-api: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D725491`` * util-sl4j-jul-bridge: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D726468`` * util-stats: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D720514`` * โ util-zk-test: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D720603`` * ๐ 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. ```PHAB_ID=D729700`` โ Runtime Behavior Changes
util: Bump version of Jackson to 2.11.4.
PHAB_ID=D727879
util: Bump version of json4s to 3.6.11.
PHAB_ID=D729764
๐ฅ 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 `GlobalFlag`s during flag parsing. ```PHAB_ID=D723956``
-
v21.8.0 Changes
๐ New Features
* util-stats: add getAllExpressionsWithLabel utility to InMemoryStatsReceiver. ``PHAB_ID=D722942`` * util-app: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D714780`` * util-app-lifecycle: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D716444`` * util-codec: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D715114`` * util-hashing: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D718914`` * ๐ util-lint: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D698954`` * util-registry: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D716019`` * util-thrift: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D715129`` * util-app: Introduce a new `Command` class which provides a `Reader` interface to the output of a shell command. ``PHAB_ID=D686134`` * util-core: Experimentally crossbuilds with Scala 3. ``PHAB_ID=D694775`` ๐ฅ Breaking API Changes
util-app: Flags and GlobalFlag now use ClassTag instead of Manifest.
PHAB_ID=D714780
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.
PHAB_ID=D715129
๐ util-core (BREAKING): Remove
AbstractSpool
. Java users should useSpools
static class or the Spool companion object to create instances ofSpool
.PHAB_ID=D694775
โ Runtime Behavior Changes
* โก๏ธ util: Update ScalaCheck to version 1.15.4 ``PHAB_ID=D691691`` * util-jackson: `JsonDiff#toSortedString` now includes null-type nodes, so that `JsonDiff.Result#toString` shows differences in objects due to such nodes. ``PHAB_ID=D707033``
-
v21.6.0 Changes
๐ New Features
* util-core: Add `ClasspathResource`, a utility for loading classpath resources as an optional `InputStream`. ``PHAB_ID=D687324`` * util-jackson: Add `com.twitter.util.jackson.YAML` for YAML serde operations with a default configured `ScalaObjectMapper.` Add more methods to `com.twitter.util.jackson.JSON` ``PHAB_ID=D687327`` * util-jackson: Introduce a new library for JSON serialization and deserialization based on the Jackson integration in `Finatra <https://twitter.github.io/finatra/user-guide/json/index.html>`__. This includes a custom case class deserializer which "fails slow" to collect all mapping failures for error reporting. This deserializer is also natively integrated with the util-validator library to provide for performing case class validations during deserialization. ``PHAB_ID=D664962`` ๐ฅ Breaking API Changes
- ๐ util-stats: Removed MetricSchema trait (CounterSchema, GaugeSchema and HistogramSchema).
StatReceiver derived classes use MetricBuilder directly to create counters, gauges and stats.
PHAB_ID=D668739
โ Runtime Behavior Changes
* โก๏ธ util-cache: Update Caffeine cache library to version 2.9.1 ``PHAB_ID=D660908``
- ๐ util-stats: Removed MetricSchema trait (CounterSchema, GaugeSchema and HistogramSchema).
StatReceiver derived classes use MetricBuilder directly to create counters, gauges and stats.