Skip to content

v0.29.0

Compare
Choose a tag to compare
@47erbot 47erbot released this 11 May 13:44
· 335 commits to refs/heads/main since this release
9fe1bd4

Summary

This is the first release of Mu to support Scala 3:

  • every module apart from mu-config is cross-published for Scala 2.13 and Scala 3 (support for 2.12 has been dropped)
  • the docs on the microsite are now built with Scala 3
  • a large proportion of the tests are now run against both 2.13 and 3

As part of the work to support Scala 3, we have removed the @service macro annotation. (It does not exist in the Scala 3 build, while for 2.13 it still exists but its use is deprecated.)

This means that we no longer support building service definitions directly in Scala. Instead we recommend an IDL-first approach, using sbt-mu-srcgen to generate service definitions from Avro/Protobuf IDL files. sbt-mu-srcgen has been updated to source-generate everything that used to be generated by the macro annotation.

If you are using Avro, Scala 3 support should be considered experimental. We use Avro4s for Avro serialization of requests and responses, and the Avro4s build for Scala 3 is still relatively immature. It has some known missing features, e.g. support for fields with default values.

The mu-rpc-health-check has been completely rewritten (#1461) to be compliant with the gRPC health check specification.

What's changed

⚠️ Breaking changes

  • Rewrite the health-check module (#1461) @cb372
  • Scala 2.12 is no longer supported
  • The deprecated (macro-generated) methods bindTracingService and tracingClient have been removed

📈 Dependency updates

Contributors to this release

@47erbot, @cb372, @fedefernandez and @rohitbishnoi