Releases: 7mind/izumi
v1.1.0-M5
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. implementsendInterruptToSelf
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
1.1.0-M3
1.1.0-M2
1.1.0-M1
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
1.0.7
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:
- distage – Compile-time safe, transparent and debuggable Dependency Injection framework for pure FP Scala,
- 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.
- 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.
- LogStage – Automatic structural logs from Scala string interpolations,
- BIO - A typeclass hierarchy for tagless final style with Bifunctor and Trifunctor effect types. Focused on ergonomics and ease of use with zero boilerplate.
- 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 - 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,
- 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)
- 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.
- Note: It's recommended to replace your usages of
- 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 toautoPull
, however it is now largely redundant.
- Related config option
- Added another
.modifyConfig
overload toContainerDef#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 applyF
type parameter (#1471)
BIO
- Add BIO instances for
Either
by @VladPodilnyk (#1445) - Return to old Fiber arity — with
Fiber2
as the default, notFiber3
, mirrorsRef1
/Promise2
, letsFiber3
&Fiber2
have the same type with the sameF
(#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, notFiber3
(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 toContainerHealthCheck.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
methodscatchSome
,widenError
, addLifecycle.fail
, changeLifecycle.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
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:
- distage – Transparent and debuggable Dependency Injection framework for pure FP Scala,
- 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.
- 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.
- LogStage – Automatic structural logs from Scala string interpolations,
- BIO - A typeclass hierarchy for tagless final style with Bifunctor and Trifunctor effect types. Focused on ergonomics and ease of use with zero boilerplate.
- 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 - 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,
- 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)
- 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
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:
- distage – Transparent and debuggable Dependency Injection framework for pure FP Scala,
- 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.
- 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.
- LogStage – Automatic structural logs from Scala string interpolations,
- BIO - A typeclass hierarchy for tagless final style with Bifunctor and Trifunctor effect types. Focused on ergonomics and ease of use with zero boilerplate.
- 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 - 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,
- 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)
- 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 nowdocker.readTimeoutMs
&docker.connectTimeoutMs
config keys now have no effect.
Corresponding fields were removed fromDocker.ClientConfig
case class.
- Default
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
andguaranteeOnFailure
methods toBracket3
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
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:
- distage – Transparent and debuggable Dependency Injection framework for pure FP Scala,
- 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.
- 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.
- LogStage – Automatic structural logs from Scala string interpolations,
- BIO - A typeclass hierarchy for tagless final style with Bifunctor and Trifunctor effect types. Focused on ergonomics and ease of use with zero boilerplate.
- 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 - 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,
- 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)
- 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)