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

Changelog History
Page 2

  • v21.4.0 Changes

    โš™ Runtime Behavior Changes

    
    * util-reflect: Memoize `c.t.util.reflect.Types#isCaseClass` computation. ``PHAB_ID=D657748``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • ๐Ÿ“‡ util-stats: Added a methods c.t.f.stats.Counter#metadata: Metadata, c.t.f.stats.Stat#metadata: Metadata, and c.t.f.stats.Gauge#metadata: Metadata to make it easier to introspect the constructed metric. In particular, this will enable constructing Expressions based on the full name of the metric. If you don't have access to a concrete Metadata instance (like MetricBuilder) for constructing a Counter, Stat, or Gauge, you can instead supply NoMetadata. PHAB_ID=D653751

    ๐Ÿ†• New Features

    
    * ๐Ÿ“‡ util-stats: Added a `com.twitter.finagle.stats.Metadata` abstraction, that can
      be either many `com.twitter.finagle.stats.Metadata`, a `MetricBuilder`, or a
      `NoMetadata`, which is the null `Metadata`.  This enabled constructing
      metadata for counters that represent multiple counters under the hood.
      ``PHAB_ID=D653751``
    
  • v21.3.0 Changes

    โš™ Runtime Behavior Changes

    
    * โช util: Revert to scala version 2.12.12 due to https://github.com/scoverage/sbt-scoverage/issues/319
      ``PHAB_ID=D635917``
    
    * util: Bump scala version to 2.12.13 ``PHAB_ID=D632567``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • util: Rename c.t.util.reflect.Annotations#annotationEquals to c.t.util.reflect.Annotations#equals and c.t.util.reflect.Types.eq to c.t.util.reflect.Types.equals. PHAB_ID=D640386

    • ๐Ÿ— util: Builds are now only supported for Scala 2.12+ PHAB_ID=D631091

    • ๐Ÿšš util-reflect: Remove deprecated c.t.util.reflect.Proxy. There is no library replacement. PHAB_ID=D630143

    • ๐Ÿ”’ util-security: Renamed com.twitter.util.security.PemFile to c.t.u.security.PemBytes, and changed its constructor to accept a string and a name. The main change here is that we assume the PEM-encoded text has been fully buffered. To migrate, please use the helper method on the companion object, PemBytes#fromFile. Note that unlike before with construction, we read from the file, so it's possible for it to throw. PHAB_ID=D641088

    • ๐Ÿ”’ util-security: Make KeyManager, TrustManager Factory helper methods public. The main change here is that we expose util methods that are used to generate TrustManagerFactory, KeyManagerFactory inside c.t.u.security for public usage. PHAB_ID=D644502

    ๐Ÿ†• New Features

    
    * util-reflect: Add `c.t.util.reflect.Annotations` a utility for finding annotations on a class and
      `c.t.util.reflect.Classes` which has a utility for obtaining the `simpleName` of a given class
      across JDK versions and while handling mangled names (those with non-supported Java identifier
      characters). Also add utilities to determine if a given class is a case class in
      `c.t.util.reflect.Types`. ``PHAB_ID=D638655``
    
    * util-reflect: Add `c.t.util.reflect.Types`, a utility for some limited reflection based
      operations. ``PHAB_ID=D631819``
    
    * ๐Ÿ‘ util-core: `c.t.io` now supports creating and deconstructing unsigned 128-bit buffers
      in Buf. ``PHAB_ID=D606905``
    
    * util-core: `c.t.io.ProxyByteReader` and `c.t.io.ProxyByteWriter` are now public. They are
      useful for wrapping an existing `ByteReader` or `ByteWriter` and extending its functionality
      without modifying the underlying instance. ``PHAB_ID=D622705``
    
    * ๐Ÿ”’ util-core: Provided `c.t.u.security.X509CertificateDeserializer` to make it possible to directly
      deserialize an `X509Certificate` even if you don't have a file on disk. Also provided
      `c.t.u.security.X509TrustManagerFactory#buildTrustManager` to make it possible to directly
      construct an `X509TrustManager` with an `X509Certificate` instead of passing in a `File`.
      ``PHAB_ID=D641088``
    
  • v21.2.0 Changes

    No Changes

  • v21.1.0 Changes

    No Changes

  • v20.12.0 Changes

    ๐Ÿ’ฅ Breaking API Changes

    * ๐Ÿšš util-core: removed `com.twitter.util.Config.` ``PHAB_ID=D580444``
    
    * ๐Ÿšš util-core: removed `com.twitter.util.Future.isDone` method. The semantics of this method
      are surprising in that `Future.exception(throwable).isDone == false`. Replace usages with
      `Future.isDefined` or `Future.poll` ``PHAB_ID=D585700``
    
    * util-stats: Changed `com.twitter.finagle.stats.MethodBuilder#withName`,
      `com.twitter.finagle.stats.MethodBuilder#withRelativeName`,
      `com.twitter.finagle.stats.MethodBuilder#withPercentiles`,
      `com.twitter.finagle.stats.MethodBuilder#counter`, and
      `com.twitter.finagle.stats.MethodBuilder#histogram`, to accept varargs as parameters,
      rather than a `Seq`.  Added a Java-friendly `com.twitter.finagle.stats.MethodBuilder#gauge`.
      ``PHAB_ID=D620425``
    
    ๐Ÿ†• New Features
    
    • util-core: c.t.conversions now includes conversion methods for maps (under MapOps) that were moved from Finatra. PHAB_ID=D578819

    • util-core: c.t.conversions now includes conversion methods for tuples (under TupleOps) that were moved from Finatra. PHAB_ID=D578804

    • util-core: c.t.conversions now includes conversion methods for seqs (under SeqOps) that were moved from Finatra. PHAB_ID=D578605

    • util-core: c.t.conversions now includes conversion methods toOption, and getOrElse under StringOps. PHAB_ID=D578549

    • util-core: c.t.util.Duration now includes fromJava and asJava conversions to java.time.Duration types. PHAB_ID=D571885

    โš™ Runtime Behavior Changes

    
    * util-core: `Activity.apply(Event)` will now propagate registry events to the underlying
      `Event` instead of registering once and deregistering on garbage collection.  This means
      that if the underlying `Event` is "notified" while the derived `Activity` is not actively
      being observed, it will not pick up the notification.  Furthermore, the derived `Activity`
      will revert to the `Activity.Pending` state while it is not under observation. ``PHAB_ID=D574843``
    
    * util-core: `Activity#stabilize` will now propagate registry events to the underlying
      `Activity` instead of registering once and deregistering on garbage collection.  This means
      that if the underlying `Activity` is changed to a new state while the derived `Activity` is not actively
      being observed, it will not update its own state.  The derived `Activity` will maintain its last
      "stable" state when it's next observed, unless the underlying `Activity` was updated to a new "stable"
      state, in which case it will pick that up instead. ``PHAB_ID=D574843``
    
    * util-stats: `c.t.finagle.stats.DenylistStatsReceiver` now includes methods for creating
      `DenyListStatsReceiver` from partial functions. ``PHAB_ID=D576833``
    
    * ๐Ÿ‘ util-core: `c.t.util.FuturePool` now supports exporting the number of its pending tasks via
      `numPendingTasks`. ``PHAB_ID=D583030``
    
  • v20.10.0 Changes

    October 27, 2020

    ๐Ÿ› Bug Fixes

    • ๐Ÿ“‡ util-stat: MetricBuilder now uses a configurable metadataScopeSeparator to align
      more closely with the metrics.json api. Services with an overridden scopeSeparator will
      ๐Ÿ“‡ now see that reflected in metric_metadata.json where previously it was erroneously using
      / in all cases. 7665b9eb
    • ๐Ÿ—„ util-slf4j-api: Better Java interop. Deprecate c.t.util.logging.Loggers as Java users should be
      ๐ŸŒฒ able to use the c.t.util.logging.Logger companion object with less verbosity required.
      26e7874b
  • v20.9.0 Changes

    September 22, 2020

    ๐Ÿ†• New Features

    
    * util-app: `Seq`/`Tuple2`/`Map` flags can now operate on booleans. For example,
      `Flag[Seq[Boolean]]` now works as expected instead of throwing an assert exception (previous
      behaviour). ``PHAB_ID=D549196``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • util-app: Flaggable.mandatory now takes implicit ClassTag[T] as an argument. This is change is source-compatible in Scala but requires Java users to pass argument explicitly via ClassTag$.MODULE$.apply(clazz). PHAB_ID=D542135

    โš™ Runtime Behavior Changes

    
    * util: Bump version of Jackson to 2.11.2. ``PHAB_ID=D538440``
    
  • v20.8.1 Changes

    August 27, 2020

    20.8.1

    ๐Ÿ†• New Features

    • โšก๏ธ util-mock: Introduce mockito-scala based mocking integration. Fix up and update mockito testing dependencies:
      • mockito-all:1.10.19 to mockito-core:3.3.3
      • scalatestplus:mockito-1-10:3.1.0.0 to scalatestplus:mockito-3-2:3.1.2.0 b2fb4b3a
    • ๐Ÿ‘ util-app: Add support for flags of Java Enum types. 4657258d
  • v20.8.0 Changes

    August 12, 2020

    20.8.0

    ๐Ÿ†• New Features

    • โœ… util-stats: Store MetricSchemas in InMemoryStatsReceiver to enable further testing. c305712e
    • util-core: c.t.u.Var.Observer is now public. This allows scala users to extend the Var trait
      as has been the case for Java users. ee1cebcf
    • util-core: Added two new methods to c.t.u.Duration and c.t.u.Time: .fromHours and .fromDays. 955f2ce9

    โš™ Runtime Behavior Changes

    • util-app: Treat empty strings as empty collections in Flag[Seq[_]], Flag[Set[_]],
      Flag[java.util.List[_]], and Flag[java.util.Set[_]]. They were treated as collections
      with single element, empty string, before. 43f83d22
  • v20.7.0 Changes

    July 22, 2020

    ๐Ÿ†• New Features

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