Scrooge v22.2.0 Release Notes

  • ๐Ÿ†• New Features

    
    * scrooge-core: `c.t.scrooge.ThriftStructCodec.forStructClassTag` API for retrieving
      the codec for a struct or union class given a class tag or manifest and
      `c.t.scrooge.ThriftStructMetadata.forStructClassTag` for retrieving its metadata.
      ``PHAB_ID=D834052``
    
    * scrooge-core: `c.t.scrooge.ThriftStructCodec.forStructClass` API for retrieving codec
      for a struct or union class and `c.t.scrooge.ThriftStructMetadata.forStructClass` for
      similarly retrieving its metadata. ``PHAB_ID=D825675``
    
    * scrooge-generator: for each method defined in a service in the Thrift IDL, if any request arg
      of a method has annotations started with `validation.`, generate a new trait
      `ServerValidationMixin` with a new API `violationReturning<method_name>` which validates incoming
      request (of Struct, Union, Exception types) and return any violations (as method parameters
      `<request_variable>Violations`) back to the users in the method API. ``PHAB_ID=D799294``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • ๐Ÿ“œ scrooge-generator: the c.t.scrooge.frontend.ThriftParser now always throws exceptions rather than warnings when a fieldname matches a reserved keyword. See c.t.scrooge.frontend.ThriftKeywords for the full list of disallowed keywords. PHAB_ID=D814995