Changelog History
Page 1
-
v22.7.0 Changes
๐ New Features
* scrooge-generator: Introduce a `AnnotatedFieldType` to abstract type annotations from `FieldType` definitions. Currently used to propagate thrift annotations inside of collection types. ``PHAB_ID=D911997`` ``PHAB_ID=D937932`` * scrooge-core: `c.t.scrooge.ThriftUnion.fieldInfoForUnionClass` API for retrieving `ThriftStructFieldInfo` for a `ThriftUnion` member class without having to instantiate it. ``PHAB_ID=D871986`` * scrooge-generator: Add @.generated annotation to Swift generated code ``PHAB_ID=D879262`` * scrooge-generator: Provide a `$STRUCT#unsetFields` method to allow bulk unsets ``PHAB_ID=D911135`` * ๐ scrooge-generator: support thrift validations on nested fields that are struct, union, and exception ``PHAB_ID=D911262``
-
v22.4.0 Changes
No Changes
-
v22.3.0 Changes
๐ New Features
* scrooge-core: `c.t.scrooge.ThriftEnumObject.forEnumClass` API for retrieving `ThriftEnumObject` for a `ThriftEnum` class. ``PHAB_ID=D859929`` * 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.`, in Java template, 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=D840524`` ๐ฅ Breaking API Changes
scrooge-core:
ThriftUnion
is now defined to extendThriftStruct
. In practice, this is not a significant change as all Scrooge-generated classes that implementThriftUnion
also implementThriftStruct
. We just made the invariant that unions are always structs explicit in the type system.PHAB_IB=D854592
scrooge-core:
ThriftEnumObject
now has an additional method,annotations
. In practice, all Scrooge-generatedThriftEnumObject
implementations already had this member, it is now just made accessible as a strongly typed member on the trait.PHAB_IB=D859929
๐ scrooge-generator:
--import-path
option is now deleted due to deprecation. An alternative is to use the--include-path
option.PHAB_ID=D916638
โ Runtime Behavior Changes
* scrooge: Bump version of Jackson to 2.13.2. ``PHAB_ID=D848592``
-
v22.2.0 Changes
๐ 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. Seec.t.scrooge.frontend.ThriftKeywords
for the full list of disallowed keywords.PHAB_ID=D814995
- ๐ scrooge-generator: the
-
v22.1.0 Changes
No Changes
-
v21.12.0 Changes
No Changes
-
v21.11.0 Changes
โ Runtime Behavior Changes
* scrooge-serializer: concrete implementations of the `ThriftStructSerializer` trait in the `c.t.scrooge.` package now cache the value of its `maxReusableBufferSize` flag for the duration of the application. This improves performance but also makes them not observe changes to the flag. The value of this flag typically does not change during run time of an application, so this is deemed an acceptable tradeoff. ``PHAB_ID=D783669`` * ๐ scrooge-generator: support language-flag "immutable-sequences" to generate Scala 2.13 compatible `scala.Seq` alias as `scala.collection.immutable.Seq`. and allows toggling the new behavior via language-flag during code generation. ``PHAB_ID=D793036``
-
v21.10.0 Changes
No Changes
-
v21.9.0 Changes
๐ฅ Breaking API Changes
* scrooge-generator: Dropped the generic (higher-kinded-types) service interface in scala-gen, users are recommended to use YourService.MethodPerEndpoint, YourService.ServicePerEndpoint and YourService.ReqRepServicePerEndpoint to represent Thrift service endpoints. Note, `-finagle` option is required to generated finagle binding code. ``PHAB_ID=D747744`` * ๐ scrooge-generator: Removed YourService.FutureIface and YourService[Future] in scala-gen, use $YourService.MethodPerEndpoint instead. Correspondingly, YourService$FinagleService and related constructors taking MethodPerEndpoint as parameters. ``PHAB_ID=D747744`` * ๐ Scrooge-generator: Dropped ThriftServiceBuilder.build and MethodIfaceBuilder.newMethodIface. ``PHAB_ID=D747744`` * ๐ scrooge-generator: Add reserved keywords to ThriftParser. If your field names match these keywords, you may need to modify them. This change should not affect backwards and forwards compatiblility if using binary protocol for serde. ``PHAB_ID=D707116``
-
v21.8.0 Changes
โ Runtime Behavior Changes
* โก๏ธ scrooge: Update ScalaCheck to version 1.15.4. scrooge-sbt-plugin and scrooge-generator still use the older version 1.14.3 because they compile with Scala 2.10. ``PHAB_ID=D691691``