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

Changelog History
Page 3

  • v20.7.0 Changes

    July 22, 2020

    🆕 New Features

    • util-app: Add ability to observe App lifecycle events. 2d2e6803
  • v20.6.0 Changes

    June 24, 2020

    🆕 New Features

    • util-stats: Add two new Java-friendly methods to StatsReceiver (addGauge and provideGauge)
      👍 that take java.util.function.Supplier as well as list vararg argument last to enable better
      developers' experience. 77c76e41
    • util-app: Add a Flaggable instance for java.time.LocalTime. 19f13a07
    • 📜 util-app: Add two new methods to retrieve flag's unparsed value (as string): Flag.getUnparsed
      0️⃣ and Flag.getWithDefaultUnparsed. 4ef3c9b9
  • v20.5.0 Changes

    May 29, 2020

    🆕 New Features

    • 🔒 util-security: Moved Credentials from util-core: c.t.util.Credentials => c.t.util.security.Credentials. c34cd8ef

    💥 Breaking API Changes

    🔒 util-core: Move Credentials to util-security: c.t.util.Credentials => c.t.util.security.Credentials. c34cd8ef

    util-core: Change the namespace of ActivitySource and its derivatives to com.twitter.io as its no longer considered experimental since the code has changed minimally in the past 5 years. 3e939701

  • v20.4.1 Changes

    April 26, 2020

    🆕 New Features

    * 👕 util-tunable: ConfigurationLinter accepts a relative path. ``PHAB_ID=D468528``
    
    ⚙ Runtime Behavior Changes
    
    • util: Bump jackson version to 2.11.0. PHAB_ID=D457496
  • v20.4.0 Changes

    April 02, 2020

    🆕 New Features

    * util-core: When looking to add idempotent close behavior, users should mix in `CloseOnce` to
      classes which already extend (or implement) `Closable`, as mixing in `ClosableOnce` leads to
      compiler errors. `ClosableOnce.of` can still be used to create a `ClosableOnce` proxy of an
      already instantiated `Closable`. Classes which do not extend `Closable` can still
      mix in `ClosableOnce`. ``PHAB_ID=D455819``
    
    💥 Breaking API Changes
    
    • util-hashing: Rename c.t.hashing.KetamaNode => HashNode, c.t.hashing.KetamaDistributor => ConsistentHashingDistributor. PHAB_ID=D449929

    ⚙ Runtime Behavior Changes

    
    * util-stats: Provide CachedRegex, a function that filters a
      Map[String, Number] => Map[String, Number] and caches which keys to filter on
      based on a regex.  Useful for filtering down metrics in the style that Finagle
      typically recommends ``PHAB_ID=D459391``.
    
  • v20.3.0 Changes

    March 08, 2020

    💥 Breaking API Changes

    util-core: The system property com.twitter.util.UseLocalInInterruptible no longer
    can be used to modulate which Local state is present when a Promise is interrupted.
    da638942

    🚚 util-core: Future.unapply has been removed. Use Future.poll to retrieve Future's
    state. 26beb347

    ⚙ Runtime Behavior Changes

    • util-core: Promises now exclusively use the state local to setting the interrupt
      🖐 handler when raising on a Promise. da638942

    🆕 New Features

    👍 util-app: Add c.t.util.app.App#onExitLast to be able to provide better Java
    ergonomics for designating a final exit function. d523c0c5

    util-core: Add c.t.io.Reader.concat to conveniently concatenate a collection
    of Reader to a single Reader. 68b28ac1

    🐛 Bug Fixes

    • 🌲 util-logging: Add a missing _* that could result in exceptions when using the
      Logger.apply(Level, Throwable, String, Any*) signature. c875d359
  • v20.2.1 Changes

    February 26, 2020

    🆕 New Features

    
    * 👍 util-app: Add `c.t.util.app.App#onExitLast` to be able to provide better Java
      ergonomics for designating a final exit function. ``PHAB_ID=D433874``
    
    * util-core: Add `c.t.io.Reader.concat` to conveniently concatenate a collection
      of Reader to a single Reader. ``PHAB_ID=D434448``
    
    💥 Breaking API Changes
    
    • 🚚 util-core: Future.unapply has been removed. Use Future.poll to retrieve Future's state. PHAB_ID=D427429

    🐛 Bug Fixes

    
    * 🌲 util-logging: Add a missing `_*` that could result in exceptions when using the
      `Logger.apply(Level, Throwable, String, Any*)` signature. ``PHAB_ID=D430122``
    
  • v20.1.0 Changes

    January 29, 2020

    No Changes

  • v19.12.0 Changes

    🆕 New Features

    
    * util-stats: Introduces `c.t.f.stats.LazyStatsReceiver` which ensures that counters and histograms
      don't export metrics until after they have been `incr`ed or `add`ed at least once. ``PHAB_ID=D398898``
    
    * util-core: Introduce `Time#nowNanoPrecision` to produce nanosecond resolution timestamps in JDK9
      or later. ``PHAB_ID=D400661``
    
    * util-core: Introduce `Future#toCompletableFuture`, which derives a `CompletableFuture` from
      a `com.twitter.util.Future` to make integrating with Java APIs simpler. ``PHAB_ID=D408656``
    
    ⚙ Runtime Behavior Changes
    
    • ⬆️ util: Upgrade to jackson 2.9.10 and jackson-databind 2.9.10.1 PHAB_ID=D410846

    💥 Breaking API Changes

    
    * 🚚 util-core: The lightly used `com.twitter.util.JavaSingleton` trait has been removed. It
      did not work as intended. Users should provide Java friendly objects, classes, and methods
      instead. ``PHAB_ID=D399947``
    
    🗄 Deprecations
    ~~~~~~~~~~~~
    
    * ✅ util-test: The `c.t.logging.TestLogging` mixin has been deprecated. Users are encouraged to
      move to slf4j for logging and minimize dependencies on `com.twitter.logging` in general, as
      it is intended to be replaced entirely by slf4j. ``PHAB_ID=D403574``
    
    🐛 Bug Fixes
    ~~~~~~~~~
    
    * 👻 util-core: `Future#toJavaFuture` incorrectly threw the exception responsible for failing it,
      instead of a `j.u.c.ExecutionException` wrapping the exception responsible for failing it.
      ``PHAB_ID=D408656``
    
  • v19.11.0 Changes

    November 06, 2019

    🆕 New Features

    
    * 👍 util: Add initial support for JDK 11 compatibility. ``PHAB_ID=D365075``
    
    * util-core: Created public method Closable.stopCollectClosablesThread that stops CollectClosables
    thread. ``PHAB_ID=D382800``
    
    * util-core: Introduced `Reader.fromIterator` to create a Reader from an iterator. It is not
    recommended to call `iterator.next()` after creating a `Reader` from it. Doing so will affect the
    behavior of `Reader.read()` because it will skip the value returned from `iterator.next`.
    ``PHAB_ID=D391769``
    
    ⚙ Runtime Behavior Changes
    
    • ⬆️ util: Upgrade to caffeine 2.8.0 PHAB_ID=D384592

    • util-jvm: Stop double-exporting postGC stats under both jvm and jvm/mem. These are now only exported under jvm/mem/postGC. PHAB_ID=D392230

    💥 Breaking API Changes

    
    * util-stats: abstract methods of StatsReceiver now take Schemas. The old APIs
      are now final and cannot be overriden. For custom implementations, define
      schema based methods (eg, counter(verbosity, name) is now
      counter(CounterSchema)). NB: users can continue to call the old interface;
      only implementors must migrate.``PHAB_ID=D385068``
    
    * 🚚 util-core: Removed `c.t.io.Pipe.copyMany` (was `Reader.copyMany`). Use `AsyncStream.foreachF`
      link to `Pipe.copy` for substitution. ``PHAB_ID=D396590``
    
    * util-core: Add `c.t.io.BufReader.readAll` to consume a `Reader[Buf]` and concat values to a Buf.
      Replace `c.t.io.Reader.readAll` with `Reader.readAllItems`, the new API consumes a generic Reader[T],
      and return a Seq of items. ``PHAB_ID=D391346``
    
    * 🚚 util-core: Moved `c.t.io.Reader.chunked` to `c.t.io.BufReader.chunked`, and `Reader.framed` to
      `BufReader.framed`. ``PHAB_ID=D392198``
    
    * 🚚 util-core: Moved `c.t.io.Reader.copy` to `c.t.io.Pipe.copy`, and `Reader.copyMany` to
      `Pipe.copyMany`. ``PHAB_ID=D393650``
    
    🗄 Deprecations
    ~~~~~~~~~~~~
    
    * util-core: Mark `c.t.io.BufReaders`, `c.t.io.Bufs`, `c.t.io.Readers`, and `c.t.io.Writers` as
      Deprecated. These classes will no longer be needed, and will be removed, after 2.11 support is
      dropped. ``PHAB_ID=D393913``
    
    * 🚚 util-stats: Removed deprecated methods `stat0` and `counter0` from `StatsReceiver`. ``PHAB_ID=D393063``