Skip to content

0.48.0 - Scala.js Support

Pre-release
Pre-release
Compare
Choose a tag to compare
@reid-spencer reid-spencer released this 15 Aug 01:24
· 158 commits to main since this release

Overview

This is a major change. Scala.js support did not come without some perturbance to the API. Here are the main changes from what it used to be in 0.47.0:

  • The language changed.
    • An Entity's State is now a leaf definition, not supporting handlers in its body. There's no advantage to that
      in the language and it make states and handler confusing.
    • All Epics and UseCases must now have a UserStory as part of their content. It no longer needs to be first, but that's recommended
    • briefly and described as phrases after a definition may now be placed in the body of the definition. It is likely that the existing
      support of post-definition documentation will be removed in a future release, after dependent riddl code is converted.
  • The support of plugins is gone. Commands must be added to this code base and included directly. Plugins were prone to errors
    used the classpath in unobvious ways and are not portable to Javascript nor scala-native (future plan).
  • All references to java.io.File and ilk have been removed. Doing files that way doesn't work in JVM.
  • All I/O operations are through java.nio, but only for the JVM versions of the modules
  • New support for a URL class was needed to encapsulate the various ways that java.nio.file.Path and java.io.File worked as well
    as java.net.URL. The utils module now provides a URL class that works on both JS and JVM.
  • Not all of the potentially public APIs have been exported to Javascript; they are just the high-level important ones. This might restrict
    functional access to lower-level APIs, but we'll add them upon request.
  • RIDDL API documentation is now available at https://riddl.tech/apidoc
  • The hugo_geekdoc theme used by documentation as upgraded to 0.47.0
  • All dependencies were upgraded, especially sbt-ossuminc, which went through several changes to support CrossProject compilation.
  • Building the documentation site functionality was restored by fixing hugo.yml workflow
  • The scala.yml workflow was fixed to only run SCoverage on JVM projects
  • The Stats and DIagrams passes that were in the analysis module were moved to the passes module
  • The testkit module was dissected, and its tests and testing support were moved to other modules
  • The analysis and testkit modules were removed. This will likely happen to prettify in the future
  • LOTS of test cases were changed and moved and embellished and made to support Javascript and ...

What's Changed

Full Changelog: 0.47.0...0.48.0