kroto-plus v0.2.2-RC3 Release Notes

Release Date: 2019-03-14 // over 1 year ago
  • 🔄 CHANGELOG

    This will be the last RC before the gRPC Coroutines API is finalized. Any feedback or questions is encouraged. Support for the legacy coroutine stub extension APIs will be removed in the next release. This release refactors generated stub extensions to use the new gRPC Coroutines API.

    🔖 Version 0.2.2-RC3

    2019-03-13

    • 🆕 New: Update Kotlin Poet to 1.0.1 (#30)

    Coroutines

    • 🆕 New: Propagate client scope cancellation to server using ClientCall.cancel (#34)
    • 🆕 New: Server rpc scope is now bound to cancellation notifications from the client (#23)
    • 🛠 Fix: Race condition between StreamObserver.onNext and StreamObserver.onCompleted when target channel is full
    • 🛠 Fix: Reduce @KrotoPlusInternalApi experimental level to Experimental.Level.ERROR to prevent external usage
    • 🛠 Fix: Remove redundant usages of @ObsoleteCoroutinesApi in call builders
    • 🛠 Fix: Remove unused experimental class CompletableDeferredObserver
    • 🛠 Fix: Annotate SuspendingUnaryObserver as an internal API
    • 🛠 Fix: Remove unnecessary creation of CoroutineScope in newSendChannelFromObserver
    • 🆕 New: Introduce ServiceScope interface and remove CoroutineScope from generated service classes (#35)
    • 🆕 New: Use Message.getDefaultInstance() as default value of stub request parameters
    • 🆕 New: Increased code coverage across the board
    • 🏗 Deprecated: Legacy service stub rpc builders in favor of new back-pressure supporting stub APIs

    gRPC Stub Extension

    • 🆕 New: Refactored code gen to support new coroutines APIs (#31)
    • 🆕 New: Generate no-arg extensions for all rpc methods with non streaming request parameters. Default request is now set to Message.getDefaultInstance()

    🏗 Proto Builders (DSL)

    • 🛠 Fix: Resolve @DslMarker insertion regression introduced in 0.2.2-RC1 (#32)