Finagle v17.10.0 Release Notes

  • ๐Ÿš€ Release Version Format

    
    * ๐Ÿš€ From now on, release versions will be based on release date in the format of
      YY.MM.x where x is a patch number. ``PHAB_ID=D101244``
    
    ๐Ÿ†• New Features
    ~~~~~~~~~~~~
    
    * finagle-core: DeadlineFilter may now be created from the class and used as a
      regular Filter in addition to a stack module as before. ``PHAB_ID=D94517``
    
    * finagle-mysql: Add ability to toggle the `CLIENT_FOUND_ROWS` flag. ``PHAB_ID=D91406``
    
    * finagle-http: Separated the DtabFilter.Extractor from the ServerContextFilter into
      a new module: ServerDtabContextFilter. While this is still enabled in the default
      Http server stack, it can be disabled independently of the ServerContextFilter.
      ``PHAB_ID=D94306``
    
    โš™ Runtime Behavior Changes
    
    • finagle-netty4: Netty4ClientEngineFactory and Netty4ServerEngineFactory now validate loaded certificates in all cases to ensure that the current date range is within the validity range specified in the certificate. PHAB_ID=D88664

    • finagle-netty4: TrustCredentials.Insecure now works with native SSL/TLS engines. PHAB_ID=D103766

    • โฌ†๏ธ finagle-http2: Upgraded to the new netty http/2 API in netty version 4.1.16.Final, which fixes several long-standing bugs but has some bugs around cleartext http/2. One of the work-arounds modifies the visibility of a private field, so it's incompatible with security managers. This is only true for http/2--all other protocols will be unaffected. PHAB_ID=D98069

    • finagle-http: Netty 3 HeaderMap was replaced with our own implementation. PHAB_ID=D99127

    ๐Ÿ—„ Deprecations

    
    * finagle-base-http: With the intention to make `c.t.f.http.Cookie` immutable,
      `set` methods on `c.t.f.http.Cookie` have been deprecated:
    
        - `comment_=`
        - `commentUrl_=`
        - `domain_=`
        - `maxAge_=`
        - `path_=`
        - `ports_=`
        - `value_=`
        - `version_=`
        - `httpOnly_=`
        - `isDiscard_=`
        - `isSecure_=`
    
      Use the `c.t.f.http.Cookie` constructor to set `domain`, `maxAge`, `path`, `value`, `httpOnly`,
      and `secure`. `comment`, `commentUrl`, `ports`, `version`, and `discard` have been removed
      per RFC-6265. ``PHAB_ID=D82164``.
    
      Alternatively, use the `domain`, `maxAge`, `path`, `httpOnly`, and `secure` methods to create a
      new `Cookie` with the existing fields set, and the respective field set to a given value.
      ``PHAB_ID=D83226``
    
    * finagle-base-http: `c.t.f.http.Cookie.isSecure` and `c.t.f.http.Cookie.isDiscard`
      have been deprecated. Use `c.t.f.http.Cookie.secure` for `c.t.f.http.Cookie.isSecure`.
      `isDiscard` has been removed per RFC-6265. ``PHAB_ID=D82164``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • ๐Ÿšš finagle-mysql: Moved Cursors.cursor method to Client trait, and removed Cursors trait. This allows cursor queries to used with transactions. PHAB_ID=D91789

    • finagle-mux: Expose transport contexts in mux.Request and mux.Response. PHAB_ID=D92998

    • ๐Ÿšš finagle-mux: The "leased" gauge has been removed from the mux client implementation since the metric is reported as the sum of the value over all clients which is unlikely to be useful. PHAB_ID=D100357