Monix 3.1.0

The release is binary and source compatible with 3.0.0.

Upgrading

To use the new version, include this in your build.sbt:

libraryDependencies += "io.monix" %% "monix" % "3.1.0"

Or in case you just want any of the sub-projects:

// Local, Scheduler, Cancelable, CancelableFuture, Atomic, etc
libraryDependencies += "io.monix" %% "monix-execution" % "3.1.0"

// Utilities built for Cats-Effect, e.g. ConcurrentChannel, FutureLift
libraryDependencies += "io.monix" %% "monix-catnap" % "3.1.0"

// Task, Coeval
libraryDependencies += "io.monix" %% "monix-eval" % "3.1.0"

// Observable
libraryDependencies += "io.monix" %% "monix-reactive" % "3.1.0"

// Iterant
libraryDependencies += "io.monix" %% "monix-tail" % "3.1.0"

Changes

Important updates:

  • #1008: Fixed stack safety issue of Observable.combineLatestList for big lists
  • #1010: flatMapLoop for Task and Coeval
  • #1012: ConcurrentQueue.isEmpty
  • #1014: Observable.timeoutOnSlowDownstreamTo
  • #1016: Observable.takeUntilEval
  • #1057: Fix default scheduleOnce implementation
  • #1062: Solves a memory leak which sometimes occurred when using Task with localContextPropagation and non-TracingScheduler
  • #1063: Ensure async boundary in TaskCreate if LCP is enabled
  • #1064 and #1070: Earlier cancelation in Observable.mapParallel if any task fails
  • #1065: Add mapAccumulate to Observable

Thanks

People that made this release possible:

  • Alexandru Nedelcu (@alexandru)
  • Allan Timothy Leong (@allantl)
  • fdilg (@fdilg)
  • Jan Bracker (@jbracker)
  • Moritz Bust (@busti)
  • mudsam (@mudsam)
  • Oleg Pyzhcov (@oleg-py)
  • Paweł Kiersznowski (@pk044)
  • Piotr Gawryś (@Avasil)
  • tanaka takaya (@takayahilton)
  • TapanVaishnav (@TapanVaishnav)