Releases: accordproject/concerto
Concerto v2.0.0-alpha.1
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-utilcontains utility functions used in other parts of the code and fundamentally independent from Concerto as a modeling language@accordproject/concerto-metamodelcontains utility functions for accessing and manipulating the new Concerto metamodel@accordproject/concerto-ctocontains the parser for the.ctosyntax for Concerto. The parser now outputs a proper Concerto object, instance of the metamodel rather than a custom JSON object.@accordproject/concerto-vocabularycontains 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-utilnotably: file loaders, file writers, the logger class, and some base exceptions. - Some of the APIs for the
ModelManagerclass have been revised, with a new set ofaddModel*methods on that class - Some of the APIs for the
ModelFileclass 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.ctosyntax
New Parser and MetaModel
The parser for Concerto (.cto syntax) has been fully re-implemented. Some of the main changes are:
- Switch from the
pegjsparser generator (no longer maintained) topeggy - 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
Numerous improvements have been made to the JSONSchema support, including the ability to import a JSONSchema as a Concerto model.
Model Vocabularies
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
🐛 Bug Fixes
- This release fixes a bug with name resolution in the metamodel for empty models (#332)
Concerto v1.2.0
Concerto v1.1.3
Concerto v1.1.2
Concerto v1.1.1
🐛 This release fixes an issue with dependencies when installing @accordproject/concerto-cli #309 .
Concerto v1.1.0
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 importto import a Concerto file into its metamodel andcicero exportto 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
This release makes some minor changes to the TypeScript API.
Concerto v1.0.3
This release make fixes to some outdated JSDoc comments and to the TypeScript interface for @accordproject/concerto-core.
Concerto v1.0.2
This release upgrades some dependencies to address security vulnerabilities.