Skip to content

3.3.0

Latest

Choose a tag to compare

@jponge jponge released this 22 Jun 17:19
2a6b4f1

Changelog

🚀 Features

kotlin

  • 46aa24c add multi builders, suspend terminal ops, tuple destructuring, and reified onFailure

unscoped

🐛 Fixes

multi

  • 258b7c8 stop MultiSplitter delivering to a zero-demand branch
  • 4a12381 stop MultiSplitter over-delivering items

unscoped

  • 591af62 separate demand from validation in AssertMulti step verifier
  • a67b472 replay operator drain loop bugs and missing terminal signal delivery
  • d872e23 set failure before done flag in MultiEmitOnOp to ensure visibility in drain loop
  • d6e9141 cancel upstream in UniEmitOn when scheduling fails
  • 6d22a9e use atomic state transition in MultiConcatMapOp request to prevent double terminal signal
  • 2ba5991 use atomic demand decrement in MultiSplitter to preserve unbounded mode
  • 5a18155 set failure before done flag in MultiCombineLatestOp to ensure visibility on invalid request
  • 6481517 deliver terminal signals through drain loop in MultiWindowOnDurationOp to prevent concurrent access
  • 26f635a route overflow failure through drain loop in MultiOnOverflowBufferOp to serialize signals
  • 0714ab7 make failure field volatile in MultiGroupByOp State to ensure visibility across threads
  • e498fd3 fail-fast semantics broken under concurrent signal arrival in UniAndCombination
  • 20ae4e2 check cancellation before item delivery in StreamBasedMulti
  • 5f4ec9d cancel upstream subscriptions on invalid request in concatMap
  • 783e4da remove spurious drop notifications in overflow keep-last operator
  • bf14dbb cancel scheduled timer on buffer-with-timeout cancellation
  • 4714181 cancel inner subscription on flatMap cancel race
  • d748eae cancel delayed cancellable in UniDelayUntilProcessor
  • 5f00b41 do not forward delayed Uni items after cancellation
  • db9bc9f avoid multiple timer starts on concurrent initial requests in IntervalMulti
  • 86d03fd mutable list wrongly passed to combinator in MultiZipOp
  • c262d06 race condition in MultiConcatMapOp inner / outer failure handling
  • d9a4c98 cancellation timeliness and correctness of MultiConcatMapOp
  • 99a7f59 missing return in SerializedMultiEmitter.fail(null)
  • beb9f24 missing return in SerializedMultiEmitter.emit(null)
  • 581be76 demand double-request race in MultiConcatMapOp
  • ea1b1e1 wip serialization bypassed by MultiFlatMapOp.innerError()
  • 106ea66 prevent backpressure failure to be swallowed by a secondary failure
  • 8399645 forward RejectedExecutionException in UniEmitOn
  • 90c299c uncaught callback exception in cancel() for UniOnTermination and UniOnCancellation
  • 99c2484 double onFailure delivery in MultiFailOnItemTimeout
  • 70ffeb0 double onSubscribe + onError delivery in ResourceMulti
  • f53af60 null items silently dropped in UniOnSubscribeCall
  • e1015d1 allow Uni memoization of Throwable items

🔄️ Changes

  • 73b5582 improve spotless caching
  • 4d061c8 use spotless-maven-plugin
  • a6820df use long literals for long values

🧰 Tasks

ci

release

  • 2a6b4f1 update version metadata for Mutiny 3.3.0
  • 9de2565 set development version to 999-SNAPSHOT

🛠 Build

ci

  • 029cd2b pin github actions to commit

deps

  • c7b2054 bump org.cyclonedx:cyclonedx-maven-plugin
  • e5998d7 bump io.smallrye:smallrye-build-parent in the major group
  • fe62444 bump io.smallrye.common:smallrye-common-annotation
  • ab302b1 bump io.smallrye:jandex-maven-plugin in the minor group
  • 6bedc1d bump io.projectreactor:reactor-core in the patch group
  • cd82e0f bump org.jacoco:jacoco-maven-plugin in the patch group
  • b32b662 bump the minor group with 5 updates
  • 9d3ac21 bump net.bytebuddy:byte-buddy in the patch group
  • 761b60a bump the patch group with 2 updates
  • c6c7fb7 bump the minor group with 3 updates
  • 7c5b2fc bump the patch group with 4 updates

docs

  • d481eef upgrade Python/MkDocs dependencies

📝 Documentation

kotlin

  • 20239f6 use param and not property for parameters

unscoped

  • c41bdd8 clarify guides/MultiExt.kt

Contributors

We'd like to thank the following people for their contributions:
Barak Shilo, Julien Ponge