New
1.2.18
logstage-core
- Logstage: logValues support by @nikita-ty754 (https://github.com/7mind/izumi/pull/2272)
- This adds new method
logValuesthat can be used as a shorthand for logging values without an accompanying message:
Will output the same message aslogger.logValues(Info)(a, b, c)logger.info(s"$a, $b, $c")
- This adds new method
- LogStage: logMethod support by @nikita-ty754 (https://github.com/7mind/izumi/pull/2266)
- This adds new methods
logMethodandlogMethodFthat will log the arguments and result of a method, or its error if method throws / fails effectfully:
Will output:logger.logMethodF(Info)(f(a, b, c))
If method succeeds, or if method fails:Call to f(a=1, b=2, c=3) => result=6Call to f(a=1, b=2, c=3) => error=IllegalArgumentException: ...logMethodcan also optionally log type parameters and/or implicit parameters of the method:logger.logMethodF(Info, printTypes = true, printImplicits = true)(f(a, b, c))Call to f[A=Int](a=1, b=2, c=3)(using dummy=scala.DummyImplicit@2e013ba1) => result=6
- This adds new methods
distage-testkit-scalatest
- Testkit: added shorthand assertIO methods by @YaroslavSagach (https://github.com/7mind/izumi/pull/2267)
- This adds new overloads for
assertIOto help with writing assertions using effect results, e.g. now instead of:
You may write:for { x <- conjureInt _ <- assertIO(x == 2) } yield ()
You can also use results of two effects in the predicate:assertIO(conjureInt)(_ == 2)assertIO(conjureInt, conjureInt)(_ == _)
- This adds new overloads for
distage-core
- Fix compile-time crash on Scala 3.7+ when using
makeTraitorTraitConstructorby @neko-kai (https://github.com/7mind/izumi/pull/2275) - locator always returns itself on Locator lookups by @pshirshov (https://github.com/7mind/izumi/pull/2278)
- Distage: Added test for trait generation with constructors + sort intersection members by @YaroslavSagach (https://github.com/7mind/izumi/pull/2268)
fundamentals-bio
- BIO: Add
Lifecycle.makeUninterruptibleExcept,Semaphore1.lifecycle,Mutex2.lifecycle,TypedError.wrapIfNotThrowable, removeSemaphore1.fromSTM, renameTypedError.applytoTypedError.noMessage, useuninterruptibleExceptinstead of bracket in Lifecycle methods by @neko-kai (https://github.com/7mind/izumi/pull/2271) - Add
ParallelErrorAccumulatingOps2, addPanic2#fromSandboxExit, addApplicative2#zipby @neko-kai (https://github.com/7mind/izumi/pull/2284) - BIO: Add methods
fromAttemptandifThenFailtoApplicativeError2, addunsafe.MaybeSuspend2by @neko-kai (https://github.com/7mind/izumi/pull/2280) - fundamentals-bio: In
TemporalZio.timeoutprevent interruption from arriving during.map(Some(_))when timeout is used in an uninterruptible section by @neko-kai (https://github.com/7mind/izumi/pull/2270)
distage-framework
- Improved error-free CLI parser by @pshirshov (https://github.com/7mind/izumi/pull/2281)
- distage-framework: Add
Option[IzArtifact] @Id("app.artifact")to application boostrap module by @neko-kai (https://github.com/7mind/izumi/pull/2279)
New Contributors
- @nikita-ty754 made their first contribution in https://github.com/7mind/izumi/pull/2272
Full Changelog: https://github.com/7mind/izumi/compare/v1.2.17...v1.2.18