Skip to content

Releases: MASD-Project/dogen

Dogen v1.0.02, "Caminhos de Ferro"

17 Jul 19:50
v1.0.02
79dc1a6
Compare
Choose a tag to compare

Caminhos de Ferro de Benguela
Carriage from Caminhos de Ferro de Benguela, the Benguela Railway, Namibe. (C) David Stanley, Flickr.

Overview

The core objective of this sprint was to refactor Yarn to fit the structure of a code generator in the Model Driven Engineering literature, in particular Model-Driven Software Engineering in Practice.

With this work, Yarn now becomes the core model housing both the meta-model and most of its transformations.

User visible changes

There are no user visible changes in this sprint.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

In the next sprint we'll resume the work on moving kernel-agnostic transformations from the kernels into yarn.

Binaries

You can download experimental binaries from Bintray for OSX, Linux and Windows (all 64-bit):

Note: We didn't produce a Windows binary for this sprint due to a configuration error.

For all other architectures and/or operative systems, you will need to build Dogen from source. Source downloads are available below.

Dogen v1.0.01, "Academia de Pesca"

03 Jul 09:34
ba66644
Compare
Choose a tag to compare

Academia de Pesca
Academia de Pesca, Namibe. (C) Angola Press.

Overview

This was an extremely quiet and long sprint, mainly focused on reading the literature on Model Driven Engineering.

User visible changes

In this sprint, a couple of minor user visible features were added:

  • Emacs mode for stitch: we now have syntax highlighting in emacs for stitch templates.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

In the next sprint we'll continue to work on cleaning up yarn's internals.

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.

Dogen v1.0.0, "Dunas"

03 Apr 10:07
v1.0.0
c5c765f
Compare
Choose a tag to compare

Dunas
Dunes from the Namib Desert, by Baia dos Tigres. (C) 2016, Travelgest Angola.

Overview

This was yet another sprint with a focus on ODB/ORM improvements. As part of this work, we have finally completed our series of blog posts on Dogen and ORM:

Also, you won't fail to notice we labelled this release v1.0. In truth, we continue with our approach of slow and incremental releases, and as such this release is no different from any other. The main reason we have decided to call it v1.0 is because the sprint numbers were becoming a bit too unwieldy - adding an extra zero for the 100th sprint just seemed a tad much. And when we looked at our Definition of Done for v1.0, we noticed that we are ticking pretty much all the boxes we had originally defined, so its not entirely unfair to call it v1.0.

User visible changes

In this sprint, a number of user visible changes were made, but all mainly bug-fixes:

  • Fixes for split directory mode: Files in the header directory were being ignored by housekeeping.
  • Concept improvements: You can now place concepts inside of namespaces.
  • Use distinct ODB extension: We are now using cxx as the extension for ODB files, allowing one to distinguish between ODB and Dogen files quite easily.
  • Changes to ORM stereotypes: We no longer use underscores in stereotypes. This is a breaking change. You need to replace orm_object, orm_value and so forth with orm object, orm value etc.
  • ODB now has MSBuild targets: For Windows users, you can now create a very simple wrapper script to call msbuild and execute ODB.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

In the next sprint we'll mop up more ODB issues and continue improving our Visual Studio support.

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.

Dogen v0.99.0, "Cine Estúdio"

20 Mar 11:46
23e85a3
Compare
Choose a tag to compare

Cine EstúdioThe unfinished Cine Estúdio, Namibe, Angola. (C) Blog O Desterro do Arquitecto, in blogspot.

Overview

This sprint was mainly focused on improving our ORM/ODB support. We have continued our series of posts on it, with the third part of the series:

We have also improved testing around a few areas:

  • all of the meta-data settings for paths and directories, fixing a few bugs in the process.
  • LAM: language agnostic models have now basic coverage and should work for both C# and C++.
  • ODB: the northwind project saw significant activity, as narrated in the blog posts.

Finally, the other significant feature added in this sprint is support for C++ 98: It is now possible to generate models which do not use any of the C++ 11 (and above features).

User visible changes

In this sprint, a number of user visible changes were made:

  • Split directory: this feature was resurrected; it is now possible to place the include directory in a location other than the main project directory.
  • Improvements in the ORM layer: more features were added and quite a few fixes. See the northwind model for an example.
  • C++ standard is now settable: users can now choose C++ 98 or C++ 11/14 as the standard and the generated code will be compliant.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

In the next sprint we'll wrap things up with our ODB work and start adding Visual Studio support.

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.

Dogen v0.98.0, "Santo Adrião"

06 Mar 11:05
Compare
Choose a tag to compare

Igreja
Igreja de Santo Adrião, Namibe, Angola. (C) Blog Moçâmedes Saudade, in blogspot.

Overview

As with the previous sprint, sprint 98 was also a smuttering of unrelated commits, attempting to address problems we are facing in production at present. However a main theme emerged: major improvements in the ODB support.

This was spurned by the ongoing series of blogposts on the integration of ODB with Dogen, using Oracle as the RDBMS:

The purpose of these series of posts is to give Dogen's ORM functionality a through testing to ensure its good enough for production. The end result will be an update to the Database test model.

Finally, we also took the chance to clean up the multiple test models we had in C++, and coalesced a number of them into a single, unified test model for C++, along the lines of what we had done for C#.

User visible changes

In this sprint, a small number of user visible changes were made:

  • ODB Fixes: a number of small fixes in the ODB support were performed, including fixing the CMake targets.
  • Introduction of the ORM layer: We create a layer of indirection between Dogen and ODB, allowing users to configure the object-relational mapping in "generic terms". This has the side-effect of greatly reducing the number of manual ODB pragmas required, because Dogen can now infer a lot of information from the meta-data supplied.
  • Log directory is now configurable: You can now send the Dogen logs to a directory of your choosing, making Dogen easier to integrate with existing builds, which may already have their own log directory.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

The next sprint will continue to focus on ODB and Visual Studio support.

Binaries

You can download experimental binaries from Bintray for OSX, Linux and Windows (all 64-bit):

Important: Due to a bug on your AppVeyor setup, we are not building off of the tag for Windows so the build does not have all of the commits for this release. Nothing significant should have been missed and we're trying to rectify this problem: see Build is not triggered for tag.

For all other architectures and/or operative systems, you will need to build Dogen from source. Source downloads are available below.

Dogen v0.97.0, "Marginal"

13 Feb 12:24
Compare
Choose a tag to compare

alt text
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 the enumeration 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 as std::string for their own purposes. As an example you can define a product_id as a primitive with an underlying type of std::string. This makes the models more intuitive and the generated code more readable. See the primitive 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.

Dogen v0.96.0, "Praia das Miragens"

30 Jan 09:42
Compare
Choose a tag to compare


Praia das Miragens, Namibe, Angola. (C) Welcome To Angola.

Overview

The main theme of the sprint was infrastructural work to enable multi-language support in yarn. This was done mainly for the customer-specific upsilon model but it will be reused in a more general form to provide support for Language Agnostic Models.

The only other area of interest in this sprint was the start of the work on "primitives". What was previously called "primitives" are now "built-ins", to best reflect their nature; a new meta-model concept of primitive was introduced. The idea is that users can create their own primitive types. Work on this has only started and the next sprint will provide clarity around the implementation.

User visible changes

In this sprint, a small number of user visible changes were made:

  • Log level is now settable: Command line utilities no longer use the deprecated verbose parameter. Instead, log_level was introduced. It maps to the existing levels of logging in Dogen.
  • JSON format was tidied up: A few inconsistencies around naming of attributes in JSON were resolved. Please look at the example models if you need to update your own models.

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 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.

Dogen v0.95.0, "Iona"

16 Jan 10:12
Compare
Choose a tag to compare


Parque Nacional do Iona, Namibe, Angola. (C) 2014 Pedro Cardoso. Obtained from the website of Rede Angola.

Overview

The bulk of this sprint's work was related to a customer specific feature: support for the upsilon input format. Other smaller tasks were:

  • the continued work on the C# frontend, which is now nearing completion. C# support is still considered experimental and the generated code has an unstable API, liable to change without notice.
  • improvements on the Windows build.
  • addition of a benchmarking framework which allows us to measure the impact of new features in code generation time.

User visible changes

In this sprint, a number of user visible features were added:

  • Improvements to C# including collections: it is now possible to use object based collections. We can now generate most C# code except generic containers.
  • Packaging on Windows: packaging support for Windows using WiX is now complete. As with OSX and Linux, Binaries are available from BinTray.
  • Validation improvements: with the new validation framework, Dogen detects a lot of errors at code generation time (such as invalid type names, attempt to instantiate abstract types, etc). More validation rules will be added over time.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

The next sprint will continue to focus on C#, particularly the addition of collections.

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.

Dogen v0.94.0, "Baía dos Tigres"

28 Dec 13:01
Compare
Choose a tag to compare


Manga das Areias, Baía dos Tigres, Namibe, Angola. (C) A. F. Mata, 2014. Sourced from blogspot.

Overview

The sprint's headline feature is the continued work on the C# kernel. It is still considered experimental and the generated code has an unstable API, liable to change without notice.

User visible changes

In this sprint, a number of user visible features were added to C#:

  • improvements in the Types facet: support for exceptions and enumerations, initial immutability support, complete constructors, improvements around equality, associations and inheritance with other model types, as well as support for modules (namespaces).
  • basic IO facet support: dumping the POCOs as a JSON stream. The JSON format is the same as used in C++.
  • basic Test Data facet support: We tried to use C# idioms for this, so Sequence Generators are based on IEnumerable.

Please refer to the test data sets for the sample model:

C# development is being validated at present with Mono and MonoDevelop from Xamarin's Alpha channel, but should work equally well with any recent versions of Visual Studio.

For more details of the work carried out this sprint, see the sprint log.

Next Sprint

The next sprint will continue to focus on C#, particularly the addition of collections.

Binaries

You can download experimental binaries from Bintray for OSX and Linux:

For all other operative systems you need to build it from source. Source downloads are available below.

Dogen v0.93.0, "Tombwa"

12 Dec 13:50
Compare
Choose a tag to compare


Tombwa, Namibe, Angola. (C) 2017 Jessé Manuel. Sourced from Instagram.

Overview

The sprint's headline feature is the start of the C# kernel. It is only an experimental feature, but Dogen can already generate the basic infrastructure such as projects, solutions and simple classes. Only primitives are supported at present. For an example of a C# model see the test data sets:

Most of the work carried out this sprint was related to adding multiple kernels to Dogen, so it is not user visible. Similarly, most of the remaining work was related to the C# kernel.

User visible changes

  • when outputting more than one kernel, Dogen now adds a kernel specific directory: e.g. cpp. csharp.
  • the --project-dir command line option has been renamed to --output-dir
  • the hardware model has been split into language-specific "builtin" models

For more details see the sprint log.

Binaries

You can download experimental binaries from Bintray for OSX and Linux:

For other operative systems you need to build it from source. Source downloads are available below.