Skip to content

Dogen v0.92.0, "Praia Amélia"

Compare
Choose a tag to compare
@mcraveiro mcraveiro released this 21 Nov 10:32
· 8129 commits to master since this release


Praia das Miragens, Namibe, Angola. (C) Pearce. Sourced from Fans Share.

Overview

The sprint's headline feature is the completion of the JSON frontend. In the past, the JSON frontend was used solely to supply "proxy models" to Dogen - i.e. top-level type definitions for external libraries such as std and boost, required so that user models could consume external types.

With this release, we finally got the JSON frontend to provide the same level of support as the Dia frontend (modulus any undetected bugs). Note that Dia will remain the preferred frontend for Dogen's own development but - significantly - users are now free to choose their preferred frontend and are no longer required to install/use Dia in order to code-generate models.

As with everything else in Dogen, regrettably, the documentation is scarce. However, there are examples of JSON models in the JSON test data pack, which largely mirror the Dia test data pack.

Other user visible changes

  • References are now supplied as part of the diagram rather than via the command line. This means you do not need to manually keep track of transitive references - you are only required to supply the models you directly depend on, and their references are automatically picked up. Use yarn.references to supply References via meta-data.
  • External Modules are now supplied as part of the diagram rather than via the command line. This also means that references no longer require you to provide External Modules for each model that consumes them. Use yarn.dia.external_modules to supply External Modules in the Dia frontend, via meta-data. In the JSON frontend, use "external_modules": "X" directly. As always, Dogen's own Dia frontend models provide modeling examples as well as examples for the the corresponding dogen.knitter invocation.
  • A new command line utility was added to convert Dia models into JSON models called tailor. It was added primarily to simplify the work on JSON support, but it may also be useful for users wishing to migrate frontends.
  • We are now uploading binary packages to Bintray. At present we only upload Debs for Linux and DMGs for OSX. These packages are experimental. Any feedback is highly appreciated.
  • Dogen no longer adds a trailing line in comments.

For more details see the sprint log.

Project Status

With this release, we have more or less implemented all the major architectural features we needed internally at Domain Driven Consulting, so we will focus more on using the product and fixing problems as we find them.

On the other hand, we have also successfully engaged a customer who requires C# support. It is likely that the next few iterations will focus on adding support for other languages.