All Versions
Latest Version
Avg Release Cycle
26 days
Latest Release
282 days ago

Changelog History
Page 1

  • v19.11.0

    November 06, 2019

    🆕 New Features

    👍 util: Add initial support for JDK 11 compatibility. e6970ed1

    util-core: Created public method Closable.stopCollectClosablesThread that stops CollectClosables
    thread. a8260998

    util-core: Introduced Reader.fromIterator to create a Reader from an iterator. It is not
    recommended to call after creating a Reader from it. Doing so will affect the
    behavior of because it will skip the value returned from

    ⚙ Runtime Behavior Changes

    • ⬆️ util: Upgrade to caffeine 2.8.0 f35ae591

    💥 Breaking API Changes

    • util-core: Add to consume a Reader[Buf] and concat values to a Buf.
      Replace with Reader.readAllItems, the new API consumes a generic Reader[T],
      and return a Seq of items. a47a219b
    • 🚚 util-core: Moved to, and Reader.framed to
      BufReader.framed. 459038f9
    • 🚚 util-core: Moved to, and Reader.copyMany to
      Pipe.copyMany. 5562ebf3

    🗄 Deprecations

    • util-core: Mark,,, and as
      🚚 Deprecated. These classes will no longer be needed, and will be removed, after 2.11 support is
      ⬇️ dropped. 844fe24d
    • 🚚 util-stats: Removed deprecated methods stat0 and counter0 from StatsReceiver. 5119e65c
  • v19.10.0

    October 09, 2019

    ⚙ Runtime Behavior Changes

    • util-core: When a computation from FuturePool is interrupted, its promise is
      set to the interrupt, wrapped in a j.u.c.CancellationException. This wrapper
      was introduced because, all interrupts were once CancellationExceptions. In
      RB_ID=98612, this changed to allow the user to raise specific exceptions as
      👻 interrupts, and in the aid of compatibility, we wrapped this raised exception
      🚚 in a CancellationException. This change removes the wrapper and fails the
      👻 promise directly with the raised exception. This will affect users that
      explicitly handle CancellationException. d95914f8

    🐛 Bug Fixes

    • 🛠 util-core: Fixed bug in where if the framer didn't emit a List the
      emitted frames were skipped. aedc943e
    • util-hashing: Fix a bug where partitionIdForHash was returning incosistent values w.r.t
      entryForHash in KetamaDistributor. c66080b6
  • v19.9.0

    September 10, 2019

    ⚙ Runtime Behavior Changes

    • 👍 util-app: Better handling of exceptions when awaiting on the to close at
      the end of the main function. We Await.ready on this as the last step of
      App#nonExitingMain which can potentially throw a TimeoutException which was previously
      ⚡️ unhandled. We have updated the logic to ensure that TimeoutExceptions are handled accordingly.
    • ⬆️ util: Upgrade to Scala Collections Compat 2.1.2. d4117162

    💥 Breaking API Changes

    • util-core: BoundedStack is unused and really old code. Delete it. eeb0e947
    • 🌲 util-logging: com.twitter.logging.ScribeHandler and com.twitter.logging.ScribeHandlers have
      🚚 been removed. Users are encouraged to use slf4j for logging. However, if a util-logging integrated
      🏗 ScribeHandler is still required, users can either build their own Finagle-based scribe client as
      in ScribeRawZipkinTracer in finagle-zipkin-scribe, or copy the old ScribeHandler
      implementation directly into their code. f4e56599
  • v19.8.1

    August 15, 2019

    🆕 New Features

    • 🏗 util: Enables cross-build for 2.13.0. d5d20cc3

    Java Compatibility

    util-stats: In c.t.finagle.stats.AbstractStatsReceiver, the counter, stat and
    addGauge become final, override counterImpl, statImpl and addGaugeImpl instead.

    c.t.util.Closable.sequence become available to java for passing varargs. d5d20cc3

    c.t.finagle.stats.StatsReceiver.provideGauge and addGauge become available to java for
    passing varags. d5d20cc3

    💥 Breaking API Changes

    util-core: (not breaking) c.t.util.Future.join and c.t.util.Future.collect now take
    Iterable[Future[A]] other than Seq.d5d20cc3

    ⏪ util-core: Revert the change above, in c.t.util.Future, collect, collectToTry and join
    take scala.collection.Seq[Future[A]]. e451e3b2

    🏗 util-core: com.twitter.util.Event#build now builds a Seq of events. Event#buildAny builds
    against any collection of events. d5d20cc3

  • v19.8.0

    August 06, 2019

    💥 Breaking API Changes

    • 🌲 util-logging: The namespace forwarders for Level and Policy in com.twitter.logging.config
      ⚡️ have been removed. Code should be updated to use com.twitter.logging.Level and
      🌲 com.twitter.logging.Policy where necessary. Users are encouraged to use 'util-slf4j-api' though
      where possible. 6ab4aeac
    • 🗄 util-logging: The deprecated com.twitter.logging.config.LoggerConfig and associated
      ⚡️ classes have been removed. These have been deprecated since 2012. Code should be updated
      🌲 to use com.twitter.logging.LoggerFactory where necessary. Users are encouraged to use
      'util-slf4j-api' though where possible. 5d43773e

    ⚙ Runtime Behavior Changes

    • ⬆️ util: Upgrade to Jackson 2.9.9. 0f0bcd44
  • v19.7.0

    July 18, 2019

    💥 Breaking API Changes

    * ⏱ util-core: Removed deprecated `c.t.concurrent.Scheduler` methods `usrTime`,
      `cpuTime`, and `wallTime`. These were deprecated in 2015 and have no
      replacement. ``PHAB_ID=D330386``
    * 🚚 util-core: Removed deprecated `com.twitter.logging.config` classes `SyslogFormatterConfig`,
      `ThrottledHandlerConfig`, `SyslogHandlerConfig`. These were deprecated in 2012 and have
      no replacement. Users are encouraged to use 'util-slf4j-api' where possible. ``PHAB_ID=D339563``
    ⚙ Runtime Behavior Changes
    • ⏱ util-core: Remove experimental toggle com.twitter.util.BypassScheduler used for speeding up (transformTry). Now, we always run map operations immediately instead of via the Scheduler, where they may be queued and potentially reordered. PHAB_ID=D338487
  • v19.6.0

    June 19, 2019

    🐛 Bug Fixes

    * 🛠 util-core: Fixed the behavior in `` where reading from `Reader#empty` fails to return
      a `ReaderDiscardedException` after it's discarded. ``PHAB_ID=D325465``
    ⚙ Runtime Behavior Changes
    • util-core: Use Local at callback creation for Future's interrupt handler rather than raiser's locals so that it is consistent with other callbacks. This functionality is currently disabled and can be enabled by a toggle (com.twitter.util.UseLocalInInterruptible) by setting it to 1.0 if you would like to try it out. PHAB_ID=D324315

    • ⏱ util-core: Remove experimental toggle com.twitter.util.BypassScheduler used for speeding up (transformTry). Now, we always run map operations immediately instead of via the Scheduler, where they may be queued and potentially reordered. PHAB_ID=D338487

  • v19.5.1

    May 21, 2019

    No Changes

  • v19.5.0

    May 17, 2019

    🆕 New Features

    • ⚠ util-app: Track the registration of duplicated Flag names. Currently, we print a warning to
      stderr but do not track the duplicated Flag names. Tracking them allows us to inspect and
      warn over the entire set. 4875552e
  • v19.4.0

    April 18, 2019


    🆕 New Features

    • 📜 util-app: Improve usage of Flag.let by providing a Flag.letParse method