Skip to content
John R. Wolfe edited this page May 7, 2022 · 10 revisions

Ciera User Guide

Preface

Welcome to the Ciera User Guide. This guide will give you a comprehensive overview of Ciera, how it works, the features it supports, and how to use them. Ciera is an open source project and depends on the community to move forward.

History

I started writing Ciera in early 2017 just as a personal project — a sort of playground to experiment with model-based model compiler concepts. At times I envisioned it to be a replacement model compiler for MC-Java to be the architecture on which the BridgePoint project rests (I haven’t completely lost that vision, but it is more blurry than it once was). At times I tried to make it everything to everyone. I had a fascination with making the generated OAL as readable as possible, which sometimes compromised in other areas that should not have been compromised. It has always been a goal to replace MC-3020 as the primary model compiler used for compiling model compilers. Over the years it has morphed and changed and now it stands as a somewhat complete general purpose Java model compiler with a handful of features useful to model compiler developers and a handful of experimental features. Instead of starting with the xtUML spec and a set of test models, as Ciera has grown, it has implemented just enough of xtUML to support the current project and therefore is somewhat skeletal.

What Ciera is

  • A personal project that turned into a semi feature complete model compiler

  • A generic Java model compiler

  • A tool for building other model compilers

  • A fully self-building, self-supporting model compiler

  • An open source project

What Ciera is not

  • A commercial project

  • A thoroughly tested/verified architecture

  • An architecture suited to real time or low memory environments

Relationship to Maven

As a Java project, I chose Maven as the preferred build tool for Ciera. As will be explained later, Ciera does not strictly depend on Maven, but it is almost not worth talking about using Ciera without talking about it in the context of a Maven build environment.

Versioning policy

Ciera adheres to the Maven versioning convention in the following format:

<major>.<minor>.<incremental>[-SNAPSHOT]

<major> is the major version. Major versions are not compatible with one another.

<minor> is the minor version. Minor version gets incremented with feature updates that do not break backwards compatibility with prior releases in the same major version

<incremental> is the incremental version. It is updated any time a new release is published that does not have a significant new feature set (most if not all bug fixes)

-SNAPSHOT is appended for unstable development versions. Non-snapshot versions may not be re-released without incrementing the version, but snapshot versions may change, so use caution.

Clone this wiki locally