Skip to content

Releases: accordproject/concerto

Concerto v2.0.0-alpha.1

16 Mar 15:38

Choose a tag to compare

Pre-release

This is an alpha release of Concerto 2.0

Introduction

Concerto 2.0 delivers some fundamental improvements, whilst maintaining a high-degree (though not total!) of backwards compatibility.

It notably includes several new packages:

  • @accordproject/concerto-util contains utility functions used in other parts of the code and fundamentally independent from Concerto as a modeling language
  • @accordproject/concerto-metamodel contains utility functions for accessing and manipulating the new Concerto metamodel
  • @accordproject/concerto-cto contains the parser for the .cto syntax for Concerto. The parser now outputs a proper Concerto object, instance of the metamodel rather than a custom JSON object.
  • @accordproject/concerto-vocabulary contains new functionality to handle model vocabularies

💥 Breaking Changes

  • Concerto libraries now require Node.js version 14 or later. Node.js version 12 is no longer supported
  • Some utility modules or functions have been moved from existing packages into the new @accordproject/concerto-util notably: file loaders, file writers, the logger class, and some base exceptions.
  • Some of the APIs for the ModelManager class have been revised, with a new set of addModel* methods on that class
  • Some of the APIs for the ModelFile class have been revised, notably the constructor for that class now expect a Concerto syntax tree (an object instance of the Concerto metamodel) rather than a string using .cto syntax

New Parser and MetaModel

See: (#340 #339) ✅

The parser for Concerto (.cto syntax) has been fully re-implemented. Some of the main changes are:

  • Switch from the pegjs parser generator (no longer maintained) to peggy
  • The output of parsing is now a valid Concerto object which means it can be handled using the Concerto API. That object is an instance of a model called the Concerto MetaModel which is published in the Accord Project models repository

TypeScript improvements

See: (#318 #362 #348 #345 #322 #170 ) ✅

Numerous improvements have been made to the TypeScript support, both to the TypeScript API for the Concerto package(s) and to the TypeScript code-generation from models.

JSONSchema improvements

See: (#294 #206 ) ✅

Numerous improvements have been made to the JSONSchema support, including the ability to import a JSONSchema as a Concerto model.

Model Vocabularies

See: (#360 #374) ✅

A new syntax allows to define a set of locale-specific vocabularies for your models. This allows a user to define the terminology for the model in various natural languages.

Concerto v1.2.1

06 Sep 15:56

Choose a tag to compare

🐛 Bug Fixes

  • This release fixes a bug with name resolution in the metamodel for empty models (#332)

Concerto v1.2.0

05 Sep 12:27

Choose a tag to compare

This release includes new features.

🚀 Features

The main new feature is the ability to convert Concerto models into C# classes.

  • 🪞 New support for converting Concerto files into C# classes (#325)

🐛 Bug Fixes

  • Model version pragma are now tolerant of prerelease Concerto versions (#327)

Concerto v1.1.3

01 Sep 12:04
655eac4

Choose a tag to compare

This is a bug fix patch release.

🐛 Bug Fixes

Concerto v1.1.2

12 Aug 15:19

Choose a tag to compare

This release fixes bugs and addresses vulnerabilities.

🐛 Bug fixes

  • #314 Properly handle built-in types when resolving type names during model imports into their metamodel instance
  • #313 Add support for decorator arguments which are type references

🛡️ Security

  • #312 Switches from uuid@3 to uuid@8 with a less predictable random number generator (Contribution by @sstone1 )

Concerto v1.1.1

11 Aug 12:18

Choose a tag to compare

🐛 This release fixes an issue with dependencies when installing @accordproject/concerto-cli #309 .

Concerto v1.1.0

07 Aug 15:21

Choose a tag to compare

This release includes new features along with bug fixes.

🚀 Features

The main new feature is the ability to access and create models in JSON format, using a so-called metamodel written in Concerto itself. This feature is particularly useful is you need to programmatically manipulate (e.g., to generate or update) models.

  • 🪞 New support for importing and exporting Concerto files into a JSON metamodel representation (#298)
  • 🛰 New CLI commands cicero import to import a Concerto file into its metamodel and cicero export to create a Concerto file from a metamodel (#298)
  • 📈 New support for converting Concerto models to GraphQL (#295 )

⚗️ Experimental

  • Also included is experimental support for importing JSONSchema into Concerto (#294 #297) - Contribution by @mttrbrts

🐛 Bug fixes

  • #302 Fix to string validators when using regular expressions with a flag

🛡️ Security fixes

  • #301 Various upgrades to dependencies to address vulnerabilities

Concerto v1.0.4

30 Jun 12:02

Choose a tag to compare

This release makes some minor changes to the TypeScript API.

Concerto v1.0.3

29 Jun 10:15

Choose a tag to compare

This release make fixes to some outdated JSDoc comments and to the TypeScript interface for @accordproject/concerto-core.

Concerto v1.0.2

13 May 16:02

Choose a tag to compare

This release upgrades some dependencies to address security vulnerabilities.