Changelog History
Page 1
-
v1.0.0-M1
October 18, 2020 -
v0.10.19
September 02, 2020 -
v0.10.18 Changes
August 20, 2020What 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,
✅ 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) - 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.17:
distage-framework:
- 👌 Improved compatibility with Graal Native Image compiler by @pshirshov
➕ Added non-reflective way to define roles via
RoleModuleDef
&RoleModuleDef#makeRole
. Reflective auto-detection of Roles (automatic addition of all inheritors of RoleService/RoleTask to roles list) is now deprecated. Please declare roles explicitly viaRoleModuleDef
:def rolesModule[F[+_, +_]: TagKK]: ModuleDef = new RoleModuleDef { makeRole[LeaderboardRole[F]] }
🛠 Fixed config loader priority: all explicit configs override all reference configs, instead of role references having a higher priority than common config (#1175)
distage-core:
- 0️⃣ Now full stacktraces are printed by default for all errors during creation of the object graph. This can be disabled by overriding key
Boolean @Id("izumi.distage.interpreter.full-stacktraces")
inBootstrapModule
s or setting system property-Dizumi.distage.interpreter.full-stacktraces=false
(#1192) - 🚚 Backported new ModuleDef ops from 0.11.0 -
--(Set)
,filter
,filterBindings
,tagged
,removeTags
,untagged
, removedtagwiseMerge
🐳 distage-framework-docker:
✅ distage-testkit:
- ➕ Added activation axis qualifier to
TestConfig#forcedRoots
andTestConfig#memoizationRoots
. Now it's possible to specify memoization Roots for multiple Activation configurations at once within a single TestConfig. By @Caparow (#1153)
fundamentals-bio
- ➕ Added BIOExit.map/.leftMap/.flatMap & BIO typeclass instances for BIOExit (#1190)
🔀 All changes merged since 0.10.17:
- 🔧 Make printing full stacktraces in PlanInterpreter configurable via BoostrapModules & system properties (#1192)
- 🚚 Backport new ModuleDef ops from 0.11 -
--(Set)
,filter
,filterBindings
,tagged
,removeTags
,untagged
, removetagwiseMerge
- 🔄 Change axis keys activation rules (#1191)
- ➕ Add BIOExit.map/.leftMap/.flatMap (#1190)
- ⚡️ Update zio to 1.0.1 (#1187)
- 🖨 Print full exception stacktrace wherever possible instead of just
getMessage
(#1186) - ➕ Add activation axis to forced and memoization roots. (#1153)
- ⚡️ Update magnolia to 0.17.0 (#1180)
- 🛠 Fix config loader priority: all explicit configs override all reference configs, instead of role references having a higher priority than common config (#1175)
- 🐳 distage-framework-docker: add default parameters and default convenience object to PostgresFlyWayDocker
- 🐳 distage-framework-docker: Postgres with FlyWay container. (#1170)
- ⚡️ Update scalatest to 3.2.1 (#1173)
- ↪ native-image fixes & workarounds
- 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
-
v0.10.17 Changes
August 05, 2020What 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,
✅ 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) - 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 addedlogstage.Message.raw
method for easier creation ofMessage
'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 tobundled
(#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 toF
summoner if aBIOMonad
or larger constraint was present, now it's enough forBIOFunctor
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 tobundled
(#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)
- 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
-
v0.10.16 Changes
July 03, 2020What 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,
✅ 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) - 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.15
all:
- ⚡️ Update to latest dependencies - ZIO RC21-2, pureconfig 0.13.0, Scala 2.13.3 (#1131)
- 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
-
v0.10.15 Changes
June 25, 2020What 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,
✅ 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) - 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.14
🐳 distage-framework-docker:
- 🛠 Fixed compatibility with remote docker configurations by @pshirshov
- 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
-
v0.10.14 Changes
June 19, 2020What 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,
✅ 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) - 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.12
🐳 distage-framework-docker:
- Added shiny new documentation microsite for distage docker module! - https://izumi.7mind.io/distage/distage-framework-docker - by @coreyoconnor (#1057)
- ➕ Added ability to reuse 'one-shot', non-daemonic, docker containers - e.g.
flyway
migrations - within a JVM. If a docker container enables reuse AND exposes no ports, it will be started only once within and will not be restarted upon exit, for this JVM. by @Caparow (#1104) - 🐳 Switch to asynchronous file locks in docker reuse mechanism by @Caparow (#1117)
✅ distage-testkit:
other:
- ➕ Add Tinkoff to users by @Odomontois (#1107)
🔀 Pull requests merged since 0.10.12:
- ➕ Add async methods to DIEffectAsync, use async file lock for file mutex. (#1117)
- 🔧 distage-testkit: Add
TestConfig#bootstrapFactory
configuration (#1116) - 📚 distage-docker documentation (#1057)
- 🛠 Fix docker port label names. (#1112)
- 🐳 distage-docker: reuse exited containers (#1104)
- ➕ Add Tinkoff to users (#1107)
- 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
-
v0.10.13
June 12, 2020 -
v0.10.12 Changes
June 06, 2020What 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,
✅ 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) - 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.11
🐳 distage-framework-docker:
- ➕ Added support for dynamic container ports - allows passing randomly generated port to the container and then exposing that same port, it may be easier to configure some containers that way than by port remapping. by @Caparow (#1097)
- 🚑 Hotfixed JDK 1.8 compatbility broken in 0.10.11 (#1100)
🔀 Pull requests merged since 0.10.10:
- 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
-
v0.10.11 Changes
June 05, 2020What 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,
✅ 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) - 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.10
🐳 distage-framework-docker:
- ➕ Added support for custom docker container readiness checks by @Caparow (#1094)
- 🐳 Bundled
PostgresDocker
container now uses a custom check that suceeds only once SQL protocol is truly available (postgres docker re-launches twice during normal bootup - first time to setup schema and users, making port check insufficient to assert readiness - postgres connection will fail if connected during the first boot-up) by @Caparow
🔀 Pull requests merged since 0.10.10:
- 🛠 Fix port mapping in bundled Kafka docker (#1096)
- 🐳 distage-docker: custom readiness checks (#1094)
- 🐳 distage-framework-docker: add defaults to Docker.ClientConfig constructor (#1085)
- ✅ Request SourceFilePosition in distage-testkit-scalatest instead of full CodePosition (#1084)
- ⚡️ Update zio to 1.0.0-RC20 (#1082)
- 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