All Versions
161
Latest Version
Avg Release Cycle
24 days
Latest Release
-

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 the Logging trait. When creating a Logger from a Scala singleton object class, the resultant logger name will no longer include the $ suffix. Remove the deprecated Loggers object which is no longer needed for Java compatibility as users can now directly use the Logger 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 use Spools static class or the Spool companion object to create instances of Spool. 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``