Releases: accordproject/concerto
v3.5.0
What's Changed
- feat(markdownvisitor): add new params to mermaid codegen used in markdown visitor by @DianaLease in #598
- feat(tools): csharp codegen uuid support by @ragi-dayananda in #597
- chore(actions): publish v3.4.0 to npm by @github-actions in #596
New Contributors
- @ragi-dayananda made their first contribution in #597
Full Changelog: v3.4.0...v3.5.0
v3.4.0
What's Changed
- Enhancements to identifiers. The format for identifiers in Concerto (i.e. the name of Concepts, Properties etc.) has been relaxed to allow values such as
false
,true
andnull
. The format is now consistently applied too, in particular, it is enforced in the JS API and JSON AST. - JSON Schema generation from Concerto models will now include an
anyOf
declaration for types with multiple subtypes - UML output (to Mermaid and PlantUML) for models now supports optional generation of Composition and Aggregation relationships in diagrams. UML output can also omit the base Concerto types (such as
Concept
).
Access the new options via the API parameters or CLI flags.
$ concerto compile --target mermaid --model model.cto --showCompositionRelationships --hideBaseModel
classDiagram
class `org.acme.Root` {
<< concept>>
+ `String` `firstName`
+ `String` `lastName`
+ `DateTime` `dob`
+ `Integer` `age`
+ `Double` `height`
+ `Children[]` `children`
}
`org.acme.Root` "1" *-- "*" `org.acme.Children`
`org.acme.Root` "1" o-- "1" `org.acme.Company` : company
class `org.acme.Person`
<< concept>> `org.acme.Person`
class `org.acme.Children` {
<< concept>>
+ `String` `name`
+ `Integer` `age`
+ `String` `hairColor`
+ `Boolean` `coolDude`
+ `String` `missing`
+ `Pet` `pet`
+ `String[]` `favoriteColors`
+ `Integer[]` `favoriteNumbers`
+ `String[]` `mixed`
+ `String[]` `arrayOfNull`
+ `String[]` `emptyArray`
+ `Pet[]` `favoritePets`
+ `Stuff[]` `stuff`
}
`org.acme.Children` "1" *-- "1" `org.acme.Pet`
`org.acme.Children` "1" *-- "*" `org.acme.Pet`
`org.acme.Children` "1" *-- "*" `org.acme.Stuff`
`org.acme.Children` --|> `org.acme.Person`
class `org.acme.Pet` {
<< concept>>
+ `String` `name`
+ `String` `breed`
}
class `org.acme.Stuff` {
<< concept>>
+ `String` `ssn`
+ `String` `firstName`
+ `String` `sku`
+ `Double` `price`
+ `Pet` `product`
}
`org.acme.Stuff` "1" *-- "1" `org.acme.Pet`
class `org.acme.Company` {
<< concept>>
+ `String` `name`
+ `Employee[]` `employees`
}
`org.acme.Company` "1" *-- "*" `org.acme.Employee`
class `org.acme.Employee` {
<< concept>>
+ `String` `name`
}
`org.acme.Employee` --|> `org.acme.Person`
Commits
- feat(core): relax reserved property names by @mttrbrts in #581
- feat(tools): add composition, aggregation relationships in UML by @mttrbrts in #595
- fix(tools): JSON Schema generation improvements for base types #592 by @dselman in #593
- fix(core): enforce identifier validation on AST JSON by @mttrbrts in #591
- test(core): fix system time offset for tests by @mttrbrts in #590
- chore(actions): publish v3.3.0 to npm by @github-actions in #588
Full Changelog: v3.3.0...v3.4.0
v3.3.0
What's Changed
- Improved validation performance for large models
- Added new (de)serialization parameter
strictQualifiedDateTimes
which makes the parsing and printing of date-time values more predictable in non-UTC offsets
Commits
-
perf(core): refactoring inefficient duplication checking nested for loops during validationby @stefanblaginov in #587
-
fix(core): deal with unqualified date times in local offsets by @mttrbrts in #553
-
chore(deps): bump json5 from 1.0.1 to 1.0.2 in /packages/concerto-tools by @dependabot in #586
-
chore(deps): bump json5 from 2.2.1 to 2.2.3 in /packages/concerto-cli by @dependabot in #585
-
chore(deps): bump json5 from 2.2.1 to 2.2.3 in /packages/concerto-vocabulary by @dependabot in #584
-
chore(deps): bump json5 from 2.2.1 to 2.2.3 in /packages/concerto-util by @dependabot in #583
-
chore(actions): publish v3.2.0 to npm by @github-actions in #578
Full Changelog: v3.2.0...v3.3.0
Concerto v3.2.0
What's Changed
-
feat(tools): support inference from JSON sub schemas by @mttrbrts in #555
-
feat(concerto): Implement Faceted Primitive Types in Concerto by @stefanblaginov in #546
-
feat(core): allow scalar strings to be used as identifiers by @mttrbrts in #562
-
feat(concerto-tools) : generate open api by @dselman in #560
-
fix(*): update metamodel cto to reflect metamodel json by @sstone1 in #557
-
fix(tools): don't capitalize types in JSON Schema inference by default by @mttrbrts in #558
-
fix(*): rework metamodel cto changes, run webpack in pull requests by @sstone1 in #561
-
fix(*): correct name resolution for import types statement by @sstone1 in #563
-
fix(core): properly unbox scalar properties by @mttrbrts in #564
-
fix(tools) : protobuf generation with unversioned namespaces by @dselman in #569
-
fix(core): range value generation for scalars by @mttrbrts in #570
-
fix(tools) define a logical type for timestamps by @dselman in #574
-
chore(main) : update workflows and docs to use main branch by @dselman in #550
-
chore(deps): bump qs from 6.5.2 to 6.5.3 by @dependabot in #565
-
chore(tools) : use nullish coalescing in openapi visitor by @dselman in #566
Full Changelog: v3.1.0...v3.2.0
Concerto v3.1.0
What's Changed
-
feat(proto3): implement a Concerto to Proto3 converter by @stefanblaginov in #539
-
feat(cli): expose infer CTO from JSON Schema to CLI by @mttrbrts in #500
-
fix(typescript) : type definitions for abstractplugin.d.ts by @dselman in #537
-
fix(*): handle version when namespace in comments by @sstone1 in #541
-
Typescript type definitions for EmptyPlugin by @dselman in #538
-
chore(deps): bump minimatch from 3.0.4 to 3.0.5 by @dependabot in #547
-
chore(deps): bump loader-utils from 1.4.0 to 1.4.2 by @dependabot in #548
-
chore(actions): publish v3.0.0 to npm by @github-actions in #535
Full Changelog: v3.0.0...v3.1.0
v3.0.0
Release Article on Accord Project Blog
Migration Guide
Breaking Changes
Features
- cli: add generate command for cli (#514) (204e43b)
- cli: add new concerto version command (contributes to #465) (#467) (45f7690)
- cli: expose
excludeLineLocations
for parsing (#454) (cddf536) - cli: extend concerto version to update imports (resolves #465) (#468) (7edb0ea)
- cli: enable strict mode for cli in compile (#502) (9cdbaec)
- cto: add option to skip location information when parsing (#455) (736ed30)
- core: Adds InMemoryWriter (#490) (853837a)
- core: client provided regex (#487) (28984e4)
- tools: fix code generation to support versioned namespaces (#464 #463 #462) (#521)
- tools: improved C# code generation (#456) (a563fa3)
- tools: use pascal case by default for generated c# code (#517) (7e2eca3)
- tools: align with concerto-dotnet changes (#511) (df10d15)
- tools: add type attributes to generated c# (#506) (98fac38)
- tools: allow c# namespace to be specified via decorator (#499) (aa61efa)
- tools: generate Mermaid UML diagrams (#457) (2a76a0c)
- tools: generate Markdown visitor (#532)
- tools: add identifier attribute to generated c# fields (#534)
- add compile option for including metamodel (#494) (98d5924)
- add decorators to model files (resolves #491) (#492) (b246faa)
- add keep and set prerelease option to version command (#493) (864b231)
- analysis: extend concerto compare to include field validators (#481) (ee709ff)
- analysis: compare two concerto models (contributes to #442) (#476) (2e17bf1)
- analysis: detect class declaration type change (contributes to #442) (f8a43c5)
- analysis: detect enum value add/remove (contributes to #442) (f6edc16)
- analysis: detect field to relationship, scalar to array (contributes to #442) (d45eb36)
- analysis: detect primitive to declaration and namespace changes (contributes to #442) (8645a0c)
Bug Fixes
- cto: parser bug for versioned import of single type (#527) (a3b8948)
- core: fix wildcard import parsing, import hygiene (#504) (53c844c)
- deps: add missing slash dependency (#488) (a9b483e)
- property wrong for versioned concerto base class (#501) (7a699b1)
- expose model util methods, remove redundant type lookup (#469) (9576cbd)
- use webpack version for browsers (#478) (39056a1)
- correct metamodel function return types (#440) (96750bf)
- correct return types for add model functions (#446) (ae09a85)
- wrong error getting fully qualified type name (#445) (2e5733c)
New Contributors
- @jonathan-casey made their first contribution in #490
- @KyleBastien made their first contribution in #441
Contributors
Full Changelog: v2.3.0...v3.0.0
v3.0.0-beta.4
What's Changed
Full Changelog: v3.0.0-beta.3...v3.0.0-beta.4
v3.0.0-beta.3
What's Changed
- fix(cto): parser bug for versioned import of single type by @mttrbrts in #527
- chore(actions): publish v3.0.0-beta.2 to npm by @github-actions in #526
Full Changelog: v3.0.0-beta.2...v3.0.0-beta.3
v3.0.0-beta.2
What's Changed
- chore(actions): publish v3.0.0-beta.1 to npm by @github-actions in #513
- feat(cli): add generate command for cli by @mttrbrts in #514
- feat(*): use pascal case by default for generated c# code by @sstone1 in #517
- chore(deps): bump nanoid and mocha in /packages/concerto-cto by @dependabot in #512
- fix(codegen) fix code generation to support versioned namespaces by @dselman in #521
- chore(deps): bump parse-url and lerna by @dependabot in #525
- chore(deps): bump nanoid from 3.1.20 to 3.3.3 in /packages/concerto-util by @dependabot in #524
- chore(deps): bump nanoid from 3.1.20 to 3.3.3 in /packages/concerto-tools by @dependabot in #523
- chore(deps): bump nanoid from 3.1.20 to 3.3.3 in /packages/concerto-vocabulary by @dependabot in #522
Full Changelog: v3.0.0-beta.1...v3.0.0-beta.2
3.0.0-beta.1
What's Changed
- chore(actions): publish v2.3.0 to npm by @github-actions in #439
- feat(types): Adding union and literal decorators to the typescript generation by @KyleBastien in #441
- fix(*): correct metamodel function return types by @sstone1 in #440
- fix(*): wrong error getting fully qualified type name by @sstone1 in #445
- fix(*): correct return types for add model functions by @sstone1 in #446
- feat(cto): add option to skip location information when parsing by @mttrbrts in #455
- chore(deps): bump parse-url from 6.0.0 to 6.0.2 by @dependabot in #451
- feat(cli): expose
excludeLineLocations
for parsing by @mttrbrts in #454 - feat(tools): improved C# code generation by @mttrbrts in #456
- (feat) support namespaces with semver by @dselman in #444
- feat(cli): add new concerto version command (contributes to #465) by @sstone1 in #467
- feat(cli): extend concerto version to update imports (resolves #465) by @sstone1 in #468
- chore(actions): publish v3.0.0-alpha.1 to npm by @github-actions in #471
- chore(deps): bump parse-url from 6.0.0 to 6.0.5 by @dependabot in #472
- fix(*): expose model util methods, remove redundant type lookup by @sstone1 in #469
- (fix) remove unused config mediator, causing webpack issues? by @dselman in #473
- (chore) remove mkdirp dep by @dselman in #474
- Webpack v5 Fixes by @dselman in #475
- feat(*): compare two concerto models (contributes to #442) by @sstone1 in #476
- feat(*): handle more differences in concerto models (contributes to #442) by @sstone1 in #477
- fix(*): use webpack version for browsers by @sstone1 in #478
- feat(*): extend concerto compare to include field validators by @sstone1 in #481
- chore(actions): publish v3.0.0-alpha.2 to npm by @github-actions in #479
- chore(jsonpopulator): remove data values from validation error messages by @mttrbrts in #483
- BREAKING CHANGE(core): limit regex to ReDoS safe patterns by @mttrbrts in #484
- chore(actions): publish v3.0.0-alpha.3 to npm by @github-actions in #486
- chore(deps): bump nanoid and mocha in /packages/concerto-core by @dependabot in #485
- feat(stringvalidator): client provided regex by @mttrbrts in #487
- fix(deps): add missing slash dependency by @sstone1 in #488
- feat(*): Adds InMemoryWriter by @jonathan-casey in #490
- feat(*): add keep and set prerelease option to version command by @sstone1 in #493
- feat(*): add decorators to model files (resolves #491) by @sstone1 in #492
- feat(*): add compile option for including metamodel by @sstone1 in #494
- chore(actions): publish v3.0.0-alpha.4 to npm by @github-actions in #495
- BREAKING CHANGE(core): rename strict option, ban wildcard imports in strict mode by @mttrbrts in #498
- feat(*): allow c# namespace to be specified via decorator by @sstone1 in #499
- fix(*): property wrong for versioned concerto base class by @sstone1 in #501
- feat(*): enable strict mode for cli in compile by @sstone1 in #502
- fix(core): fix wildcard import parsing, import hygiene by @mttrbrts in #504
- feat(*): add type attributes to generated c# by @sstone1 in #506
- BREAKING CHANGE(cto): change syntax of ImportTypes statements by @mttrbrts in #508
- BREAKING CHANGE(cto): remove untested import from JSON, improve code coverage by @mttrbrts in #505
- feat(*): align with concerto-dotnet changes by @sstone1 in #511
- chore(*): improve code coverage by @mttrbrts in #510
New Contributors
- @jonathan-casey made their first contribution in #490
Full Changelog: v2.3.0...v3.0.0-beta.1