Breaking the Radio Silence
Mar 5, 2019 by Stefan Naujokat
While this Cinco website has been unattended for almost two and a half years, the project itself has made significant progress in the meantime. This update informs you about the recent development in the “Cincoverse”.
We moved to GitLab
Already in September 2017, we moved the Cinco project to a (private) GitLab repository to utilize their fancy issue tracker and wiki, but also for their options to directly integrate continuous practices (CI/CD, see below). The project is publicly available by now (under gitlab.com/scce/cinco) and we invite everyone to join the community process, e.g., by filing bugs, but also discuss feature ideas, etc.
With our migration to GitLab, we introduced automated CI/CD for the Cinco builds. For quite some time now (though, obviously, not promoted on this site) we offer automated nightly builds of Cinco installers on our download server.
Cinco Release 1.0
We recently published a new release version. Cinco 1.0, which is available in the downloads section, underwent some major changes “under the hood”, which are briefly outlined in the following.
Removed Legacy Libraries
While jABC has been a valuable tool for defining the code generators of Cinco in a model-driven fashion, its legacy libraries and license have been a hindrance in flexibility for Cinco development and for it to go full “open source”. We thus re-implemented all code generators using Xtend templates. This not only frees us from legacy burdens, but also allows anyone out there to use common (open source) tools to build and even enhance Cinco.
New API Style
Previous versions of Cinco generated two different APIs due to the underlying technologies involved: the normal Ecore-based API generated from the MGL specifications; and a specialized API (called C-API) to emulate the Graphiti editor behavior on the code level (with all classes being C-prefixed to reflect which API one was currently facing). This resulted in the (quite unintuitive) necessity to use a Wrapper class that translated between these two APIs.
Now, in Cinco 1.0, there is only one (unprefixed) API that knows all the features of the graphical editor (like move, resize, etc.) but is completely independent of the actual Graphiti editor. Furthermore, we enhanced the generation of the API’s methods’ signatures, so that more precise return types are given when calling methods to retrieve, e.g., successors of a node. This makes (for most cases) potentially problematic class casting unnecessary.
While we were at it, we took the chance to migrate Cinco 1.0 to the last “named” Eclipse version: Photon. We won’t be able to follow Eclipse’s newly introduced three-monthly rolling release strategy, but aim at going to a new version roughly once a year.
The Pyro framework provides an alternative generation target for modeling products specified with Cinco: instead of generating an Eclipse-based product with Ecore persistence and Graphiti diagram editing, a multi-user collaborative online modeling environment is created from the very same specification files. What has started as a mere meta plug-in for Cinco, has now become a full-fledged project with an own development team and website. Head over to pyro.scce.info and try out the “playground” directly in your browser.
More Papers on Cinco
Several papers have been published in the last two years on Cinco’s concepts and applications. They have been added to the resources page