Skip to content

sconfig 1.1.3

Compare
Choose a tag to compare
@ekrich ekrich released this 27 Dec 22:20

This is the 9th release of sconfig which supports basically the entire Scala line of products.

Scala Native 0.3.9 and 0.4.0-M2 for Scala 2.11. Scala.js 0.6.31, 1.0.0-RC2, and Scala JVM are supported on Scala 2.11, 2.12, 2.13. We added 0.21.0-RC1 (aka Dotty) for JVM only. Pure Java projects are also supported but require the Scala library. All platforms are supported on Java 8 and 11 except Scala Native 0.3.x which is currently not supported on Java 11 due to an needing a PR merged and a release cut.

Changes 💥

This release has been a long time in the making. The Config.resolve issue which allows substitution was broken on Scala.js due to missing java.util.IdentityHashMap. Testing is still not cross platform or this would have been caught. Fixing this required contributing the collection to Scala.js which was a big job for me. Once this was merged to 0.6.x and then forward ported to 1.0.0-RC2 then we could add support for the 1.0.x series as well.

Dotty support came in 3 major PRs and is not 100% yet. Java Serialization still is broken due to some enum issues but most of the unit tests pass. Only 19 fail out of 530 but currently we are only testing 346 on Dotty. All warnings are gone except Int to Long implicit warnings in the test suite which just showed up in the latest release and I was told they are too strict. Warnings due to non-local returns have also been removed which was a pretty long list of real code changes since this library was ported from Java with switch and return everywhere. Thanks to the helpful folks on scala/scala in resolving some of the harder ones. There are other issues that mostly affect Java support with the Dotty build. Issues are outlined in #49.

Fixing the scaladoc links was a major job but all the warnings were really junking up the log file. I think we have no documentation in Scala because it is way too hard. Javadoc was a pretty big improvement at the time and Scaladoc should be much better but is not. Maybe we need a PhD thesis to take documentation to the next level.

  • Fix #36: Could not call Config.resolve in Scalajs #57
  • Update scalafmt version and allow changes #56
  • Add support for Scala.js 1.0.0-RC2 #58
  • Fix #24: Fix scaladoc #60
  • Dotty update #3 #62
  • Dotty port phase 2 #49
  • Add support for Dotty #48

Contributors 👥

According to git shortlog -sn --no-merges v1.0.0..v1.1.3, 2 people contributed to this release: Eric K Richardson and Hamid

Thanks to Hamid (@hamidr) for being the very first direct contributor and for Andares Merigold (@andares) for trying out Scala.js and finding the resolve issue. Special thanks to Sébastien Doeraene (@sjrd) for coaching me through my contribution to Scala.js.

I would also like to thank the Dotty team on Gitter for helping me and putting up with me with during the Dotty porting. This included help with issues and workaround suggestions. Special thanks to Guillaume Martres (@smarter). 🎤 👏