Dogen v0.97.0, "Marginal"
Marginal de Moçamedes, Namibe, Angola. (C) Angola Bela. Sourced from Angola Bela's site.
Overview
This sprint had work slightly scattered, but the core work are a few interesting features for users around enumerations and primitives - described below.
In this release we also started work on the next generation parser, thanks to @klemens-morgenstern who has laid its foundations. The integration work of this new parser will proceed over the next few sprints.
User visible changes
In this sprint, a small number of user visible changes were made:
- Enumerations are more configurable: Its now possible to disable the
invalid
enumeration and add user defined enumeration values. This is useful for defining bitflags for example. See theenumeration
test model for examples (Dia, JSON). - Introduction of Primitives: A new meta-model concept was introduced called a
primitive
. This allows users to "redefine" built-in types or other select types such asstd::string
for their own purposes. As an example you can define aproduct_id
as a primitive with an underlying type ofstd::string
. This makes the models more intuitive and the generated code more readable. See theprimitive
test model for examples (Dia, JSON). - Improvements in Validation: assorted updates to validation, including checking that the enumeration underlying type is valid as an enumeration type, checking for C# keywords, etc.
For more details of the work carried out this sprint, see the sprint log.
Next Sprint
The next sprint will continue to focus on Upsilon and hopefully C#.
Binaries
You can download experimental binaries from Bintray for OSX, Linux and Windows (all 64-bit):
For all other architectures and/or operative systems, you will need to build Dogen from source. Source downloads are available below.