Cicero v0.11.0
Pre-release
Pre-release
This is a major release! Some of the highlights include: support for handling and maintaining timezones in Date/Time operations, a new way to write tests for your legal contracts and clauses which does not require you to write code, and the ability to indicate semantic tags with your templates.
Also this release includes a completely redesigned API and execution engine, and Corda as a new target for the Cicero model generator.
Note that as of this release, Ergo is the only source language for contract logic in Accord Project templates. You can still compile templates to JavaScript for execution on NodeJs or other JavaScript-based platforms.
Cicero Core
- 🏷️ You can use the
keyword
field in your package.json and the newgetKeywords()
call gives you access to keywords as part of the template metadata. (contribution by @irmerk)
Cicero Execute
- ⚙️Completely redesigned execution API, Ergo and Cicero now share the same execution engine
- ⌛Execution API now takes a current time (ISO 8691 UTC format) as a parameter
- ⌛Using
moment-mini
for a smaller footprint of the execution engine
Cicero Generate
- ⚗️New
Corda
format, lets you generate Corda-ready Java classes from your templates.
Template testing
- 🥒New Format for tests uses Cucumber syntax, so you do not need to learn JavaScript for testing Accord Project templates!
Ergo
- 📲 New dispatch semantics: dispatch picks the clause with the most specific request type first, and the compiler rejects programs with two clauses with the same request type (accordproject/ergo#550)
- ⌛ DateTime operations maintain and take into account timezone information (accordproject/ergo#515)
- 🧮 New operator
%
for remainder,integerModulo
returns the modulo.integerMod
is removed. - 🚅 Various performance improvements
Bug fixes
- 🐞
getMonth
now returns month ranging from 1 to 12, instead of 0 to 11 (accordproject/ergo#574) - 🐞arraySubtract has parameters in the right order again in JavaScript backend (accordproject/ergo#576)
- 🐞Record construction properly handles duplicate fields (accordproject/ergo#516)
- 🐞
startOf
is not the same asendOf
anymore... (accordproject/ergo#513)