Skip to content

Releases: 7mind/izumi

v1.1.0-M5

11 Jul 19:50
Compare
Choose a tag to compare

Detailed release notes pending until 1.1.0 release.

changes

  • Finalize CE3 support in BIO. Consider only external interruption to be Exit.Interrupted in ZIO. implement sendInterruptToSelf properly. by @neko-kai (#1739)
  • Fix Entropy1#nextLong(max) returning negative values, inconsistent with Entropy1#nextInt(max)

Full Changelog: v1.1.0-M4...v1.1.0-M5

1.1.0-M4

07 Jun 21:00
Compare
Choose a tag to compare

Detailed release notes pending until 1.1.0 release.

changes

  • distage: Improved cyclic dependency resolution with by-name parameters
  • BIO: Fixed Concurrent & Spawn Cats conversions

1.1.0-M3

02 Jun 10:59
Compare
Choose a tag to compare

Detailed release notes pending until 1.1.0 release.

changes

  • Fixed JDK 17 compatibility when cyclic dependencies are resolved using generated proxies (#1737)

1.1.0-M2

30 May 23:46
Compare
Choose a tag to compare

Detailed release notes pending until 1.1.0 release.

major changes

  • Cats Effect 3 Support (#1706)

other changes

  • Fix regression in logstage config parsing from - allow partial logstage config in HOCON again (#1704)

1.1.0-M1

09 Feb 23:56
Compare
Choose a tag to compare
1.1.0-M1 Pre-release
Pre-release

First 1.1.0 Milestone

Detailed release notes pending until 1.1.0 release.

distage-core

  • Just-in-time non-sequential plan interpreter with IC prioritization (#1615)

Short notes

  • Major under-the hood improvements and bug fixes are included in this milestone, but the API changes are minimal.
  • You may find a list of all changes in the commits since 1.0.8 – here.
  • CE3 support will arrive in the next milestone release

1.0.8

13 Jun 01:12
Compare
Choose a tag to compare

distage-extension-config

  • Update pureconfig to 0.16.0 due to reports of binary compatibility breakage with the newest pureconfig

1.0.7

01 Jun 00:19
Compare
Choose a tag to compare

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 – Compile-time safe, 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 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)
  9. 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 1.0.5

distage-framework-docker

  • Added support for IPv6 by @Caparow (#1469) (#1478)
    • Note: It's recommended to replace your usages of Docker.AvailablePort#hostV4 method with .hostString method, usages of .hostV4 are deprecated.
  • Added ability to wait for a container to exit before spawning dependent containers using ContainerHealthCheck.exitCodeCheck by @Caparow (#1464)
  • distage-framework-docker will no longer try to redundantly pull an image if one is already downloaded by @Caparow (#1464) (#1475)
    • Related config option ContainerConfig#alwaysPull has been renamed to autoPull, however it is now largely redundant.
  • Added another .modifyConfig overload to ContainerDef#make that allows to just modify config without summoning additional dependencies (#1508)

distage-core

  • Added new methods for distage.Lifecycle by @VladPodilnyk (#1422) (#1471) (#1472)
    * catchAll
    * redeem
    * catchSome
    * widenError
    * fail
  • Change Lifecycle.pure to partially apply F type parameter (#1471)

BIO

  • Add BIO instances for Either by @VladPodilnyk (#1445)
  • Return to old Fiber arity — with Fiber2 as the default, not Fiber3, mirrors Ref1/Promise2, lets Fiber3 & Fiber2 have the same type with the same F (#1506)

LogStage

  • Fix regression: return spliced if-expressions in logger macros, that were lost after #1165 (#1435)
  • Rename *LoggerF entities to *LogIO for consistency (#1434)

Internal

  • Swap ? placeholder and _ wildcard using kind-projector 0.13.0 & scalac 2.13.6 (#1479)
  • New adopter by @Ravenow (#1505)
  • Allow disabling recompilation token with an import, add an implicitNotFound if recompilation token is not found under bizzare conditions (#1507)
  • Added new adopter by @vitaliihonta (#1462)
  • Re-enable coverage on 2.12 (#1499)

Pull requests merged since 1.0.5

  • distage-framework-docker: add a .modifyConfig overload without additional summons (#1508)
  • Allow disabling recompilation token with an import, add an implicitNotFound if recompilation token is not found under bizzare conditions (#1507)
  • Return to old Fiber arity - Fiber2 as the default, not Fiber3 (mirrors Ref/Promise, lets Fiber3/2 for the same F to have compatible types) (#1506)
  • New adopter (#1505)
  • Re-enable coverage on 2.12 (#1499)
  • Swap ? placeholder and _ wildcard using kind-projector 0.13.0 & scalac 2.13.6 (#1479)
  • Feature: di-docker bugfixes (#1478)
  • docker: Fix early container removal condition, remove ability to wait on container to be removed in health checks, remove redundant type parameter in ContainerHealthCheck, add variance to container tag for convenience, add error message to ContainerHealthCheck.Failed, add test for exit code health check (#1475)
  • Make sure Lifecycle creation is suspended properly in Lifecycle.redeem (Address #1422 (comment)) (#1472)
  • Add Lifecycle methods catchSome, widenError, add Lifecycle.fail, change Lifecycle.pure to partially apply F type parameter (#1471)
  • Feature: ipv6 in docker (#1469)
  • Feature: healthcheck for docker container exit (#1464)
  • New methods for Lifecycle: catchAll + foldM (#1422)
  • Added new adopter (#1462)
  • BIO instances for Either (#1445)
  • logstage: Rename *LoggerF entities to *LogIO for consistency (#1434)
  • Fix regression in logstage: return spliced if-expressions in logger macros lost after #1165 (#1435)
Dependency updates
  • Update to Scala.js 1.5.1 (#1514)
  • Update monix to 3.4.0 (#1487)
  • Update sbt-scoverage to 1.8.2 (#1513)
  • Update classgraph to 4.8.106 (#1512)
  • Update circe-core, circe-literal, ... to 0.14.1 (#1510)
  • Update zio-interop-cats to 2.5.1.0 (#1502)
  • Update zio to 1.0.8 (#1501)
  • Update izumi-reflect to 1.1.3-RC1
  • Update scalatest to 3.2.9 (#1494)
  • Update cats-effect, cats-effect-laws to 2.5.1 (#1486)
  • Update scala-collection-compat to 2.4.4 (#1488)
  • Update cats-core to 2.6.1 (#1485)
  • Downgrade jawn to 1.0.1
  • Update jawn to 1.1.1, scala-java-time to 2.0.0
  • Update pureconfig-magnolia to 0.15.0 (#1447)
  • Update docker-java-core, ... to 3.2.8 (#1442)
  • Remove redundant circe-literal, circe-parser, circe-generic-extras dependencies from fundamentals-json-circe

1.0.5

29 Mar 07:55
Compare
Choose a tag to compare

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)
  9. 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 1.0.4

LogStage

  • Fixed a bug when spurious "Shutdown in progress" exceptions were generated when application was terminated by a signal (#1424)

1.0.4

20 Mar 00:11
Compare
Choose a tag to compare

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)
  9. 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 1.0.3

distage-framework-docker

  • Improved Windows support – added ability to connect to docker daemon using Windows Npipe. Thanks to Aleksey K (#1418)
    • Default docker-java transport has been changed from Netty to "Zerodep" (Shaded Apache HTTP Client) to enable Windows support,
      However timeout customization is not supported by that transport, so now docker.readTimeoutMs & docker.connectTimeoutMs config keys now have no effect.
      Corresponding fields were removed from Docker.ClientConfig case class.

distage-framework

  • Fixed a bug when the application wouldn't shutdown promptly after being interrupted by the user (#1415)
  • Fixed a bug when roles running in an incompatible effect type would still be discovered. Launcher will now print warnings for any such roles and not make them available for selection (#1416)

LogStage

  • Fix incorrect conversions between camelCase and snake_case

fundamentals-bio

  • Added a host of new helper methods! by @vitaliihonta (#1390)
    • Functor3: fromOptionOr
    • Monad3: iterateWhile, iterateUntil, iterateWhileF, iterateUntilF
    • Error3: fromOptionF, retryWhile, retryUntil, retryWhileF, retryUntilF
  • Added bracketOnFailure and guaranteeOnFailure methods to Bracket3 typeclass (#1400)

Pull Requests merged since 1.0.3

  • windows support, zerodep docker api, thanks to Aleksey K (#1418)
  • Fix roles with incompatible effect types being added to application when using makeRole bindings, print warning on unusable roles (#1416)
  • Shutdown logic improved (#1415)
  • Add bracketOnFailure & guaranteeOnFailure (#1400)
  • Added Monad3/Error3 cats/zio like syntax enhancements (#1390)
  • Fix #1369 Remove Vidiq (#1372)

1.0.3

15 Jan 16:33
Compare
Choose a tag to compare

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)
  9. 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 1.0.2

distage

  • Fixed a bug when an integration check for a subtype of the application effect type would not be found. (IntegrationCheck[F] type was missing covariance on F parameter) (#1367)