Twitter Util v21.3.0 Release Notes

  • โš™ 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``