DIStage v0.10.17 Release Notes

Release Date: 2020-08-05 // over 3 years ago
  • Izumi

    What is it?

    Izumi (jp. 泉水, spring) is an ecosystem of independent libraries and frameworks allowing you to significantly increase productivity of your Scala development.

    including the following components:

    1. distage – Transparent and debuggable Dependency Injection framework for pure FP Scala, ✅ 2. distage-testkit – Hyper-pragmatic pure FP Test framework. Shares heavy resources globally across all test suites; lets you easily swap implementations of component; uses your effect type for parallelism. 🐳 3. distage-framework-docker – A distage extension for using docker containers in tests or for local application runs, comes with example Postgres, Cassandra, Kafka & DynamoDB containers. 🔊 4. LogStage – Automatic structural logs from Scala string interpolations, 💅 5. BIO - A typeclass hierarchy for tagless final style with Bifunctor and Trifunctor effect types. Focused on ergonomics and ease of use with zero boilerplate. 🚚 6. izumi-reflect (moved to zio/izumi-reflect) - Portable, lightweight and kind-polymorphic alternative to scala-reflect's Typetag for Scala, Scala.js, Scala Native and (soon) Dotty ⚡️ 7. IdeaLingua (moved to 7mind/idealingua-v1) – API Definition, Data Modeling and RPC language, optimized for fast prototyping – like gRPC or Swagger, but with a human face. Generates RPC servers and clients for Go, TypeScript, C# and Scala, 🏗 8. Opinionated SBT plugins (moved to 7mind/sbtgen) – Reduces verbosity of SBT builds and introduces new features – inter-project shared test scopes and BOM plugins (from Maven)
    2. Percept-Plan-Execute-Repeat (PPER) – A pattern that enables modeling very complex domains and orchestrate deadly complex processes a lot easier than you're used to.

    🔄 Changes since 0.10.16

    🔊 logstage:

    🔊 Multiplie large contributions to LogStage by @catostrophe, thank you!

    • ➕ Add .raw namespace to loggers by @catostrophe.
      This allows using a .raw form for LogStage loggers that does not process input string interpolations. Also added logstage.Message.raw method for easier creation of Message's (#1165)
    • ➕ add contramap to LogstageCodec by @catostrophe (#1168)
    • 🔊 logstage-rendering-circe: make JSON key overridable by @tuleism (#1167)
    • ➕ added LogstageCodec for Throwable by @pshirshov

    🐳 distage-framework-docker:

    • 🐳 Move bundled docker container definitions from examples package to bundled (#1155)
    • 👍 Better docker diagnostics by @pshirshov (#1132)

    ✅ distage-testkit:

    • ✅ Handle Throwable#getMessage == null case in DistageScalatestReporter (#1136)

    fundamentals-bio

    • 🛠 Fix AttachBIOParallel. BIOParallel methods would only be attached to F summoner if a BIOMonad or larger constraint was present, now it's enough for BIOFunctor constraint to be present, as for other attachments (#1141)

    all:

    • ⚡️ Update to ZIO 1.0.0 (#1171)

    🔀 Pull requests merged since 0.10.16:

    • ⚡️ Update to ZIO 1.0, ZIO cats interop 2.1.4.0 (#1171)
    • 🔊 logstage-rendering-circe: make JSON key overridable (#1167)
    • ➕ add contramap to LogstageCodec (#1168)
    • 🔊 [Logstage] Add raw namespace to loggers (#1165)
    • 🐳 Move bundled docker container definitions from examples package to bundled (#1155)
    • ⚡️ Update cats-effect to 2.1.4 (#1144)
    • 🛠 Fix AttachBIOParallel (#1141)
    • 🔋 Feature/better docker diagnostics (#1132)
    • ✅ Handle Throwable#getMessage == null case in DistageScalatestReporter (#1136)
    • ⚡️ Update scalafmt-core to 2.6.2 (#1134)