@alexandru alexandru released this Aug 20, 2018 · 232 commits to master since this release

Assets 2

This is the third release candidate before 1.0. The only planned changes before the final release are documentation and an upgrade to cats-1.3.0 when it is released.

List of Changes

New data types:

Major behavioral / breaking changes:

  • #278: New encoding of Resource
  • #282: Change laws for Bracket and Concurrent to support auto-cancelable and streaming types
  • #290: Changes to concurrency and cancellation:
    • Concurrent#cancelable is no longer a primitive.
    • Replace IO[Unit] with F[Unit] as the cancellation token, aliased to CancelToken[F]
    • IO#unsafeRunCancelable now returns a CancelToken[IO] to support backpressure
  • #298: Introduce SyncIO, which becomes return type in Effect#runAsync and ConcurrentEffect#runCancelable
  • #296: Sync extends cats.Defer
  • #289, #307: Separation of concerns in Timer:
    • Timer#shift moved to new ContextShift
    • Timer#clockMonotonic and Timer#clockRealtime moved onto Timer#clock
    • Timer.deriveIO is removed.
    • Added derived Timer instances for various monad transformers over F[_].
  • #309: Remove Effect#runSyncStep
  • #311: Make IO auto-cancelable after async boundaries and remove IO#onCancelRaiseError

Added features:

  • #266: Update implicitNotFound error message in Timer
  • #269: Add Resource.fromAutoCloseable
  • #249: Add Applicative[Fiber[F, ?]] instance given Concurrent[F]
  • #305: Backpressure on IO cancellation tokens to support sequenced finalizers
  • #289: Improved support for blocking APIs with ContextShift#evalOn

Docs:

  • #263: Replace Task's mentions with IO from MVar docs
  • #264, #283: Cleanup to documentation for Ref
  • #292, #300: Typo fixes
  • #300: Document stack safety as another use case for IO.shift
  • #303: Remove redundant Parallel[IO, IO] instance from Deferred docs
  • #302: Document SyncIO
  • #304: List related projects
  • #287: New guide to concurrency basics

Bug fixes and chores:

  • #274: Test against Oracle JDK 10
  • #273: Build with sbt-1.1.6
  • #275: Build with scala-2.12.6, scalatest-3.0.5
  • #293: Remove deprecated procedure syntax
  • #294: Build for scala-2.13.0-M4 and with cats-1.2.0

Getting Involved

You can always help with:

  1. Feedback by joining us on Gitter
  2. Re-tweet the [release announcement]
  3. Give us a star on GitHub 🙂

Special Thanks

This release was made possible by: @Avasil, @bthuillier, @adamw, @sullis, @aoiroaoino, @alexandru, @kubokoz, @vaslabs, @LukaJCB, @xuwei-k, @mpilquist, @dscleaver, @ericlurla, @gvolpe, @pchlupacek, @rossabaker, @ChristopherDavenport and several other reviewers and commenters.

Thanks to all those involved!