Closed jeromesimeon closed 3 years ago
A draft for what the base models could be like for 1.0
is in the branch: https://github.com/accordproject/models/tree/js-base-models-93
under src/accordproject
(https://github.com/accordproject/models/tree/js-base-models-93/src/accordproject).
That draft assumes support for systems model will be removed from Concerto.
Some changes:
base
model. identifiers have been folded into the models as requiredobligation
model which reduces the dependencies of the core models to other parts (e.g., money
is not required in Concerto Core anymore). (See also: https://github.com/accordproject/models/issues/94)PayLoad
, Success
, Failure
)Accord
prefixes which seem redundant with the namespace. AccordContract -> ContractData
and AccordClause -> ClauseData
State
and Obligation
are in the runtime
rather than the contract
modelpromisor
and promisee
are now accord Party
rather than Participant
and are mandatory (per the comment)There is a lot of room for discussion here, and will need review and iteration.
Nothing to add from me here. The changes in your fork LGTM
Nothing to add from me here. The changes in your fork LGTM
@mttrbrts Are you also happy with 6. and 7. which I thought were a bit more controversial?
About 6. We do have a few templates which leave parties as blank.
About 7. Could go with specific Ergo support for storing/retrieving obligation from the state. This could provide much nicer support for the kind of logic currently used in the Supply Agreement template https://github.com/accordproject/cicero-template-library/tree/master/src/supplyagreement
Status update on this issue:
Some observations:
10:07:43 AM: Error handling /opt/build/repo/src/cicero/runtime.cto
10:07:43 AM: Relationship promisor must be to a class that has an identifier, but this is to system.Participant File '/opt/build/repo/src/cicero/runtime.cto': line 41 column 3, to line 44 column 3.
10:07:46 AM: Error handling /opt/build/repo/src/docusign/connect.cto
10:07:46 AM: Unable to download external model dependency 'https://release-1-0--accordproject-models.netlify.com/cicero/runtime.cto'
10:07:46 AM: Error handling /opt/build/repo/src/docusign/connect@0.2.0.cto
10:07:46 AM: Unable to download external model dependency 'https://release-1-0--accordproject-models.netlify.com/cicero/runtime.cto'
10:12:13 AM: Error handling /opt/build/repo/src/payment/payment.cto
10:12:13 AM: Unable to download external model dependency 'https://release-1-0--accordproject-models.netlify.com/cicero/runtime.cto'
10:12:16 AM: Error handling /opt/build/repo/src/signature/signature.cto
10:12:16 AM: Unable to download external model dependency 'https://release-1-0--accordproject-models.netlify.com/cicero/runtime.cto'
docusign/connect@0.3.0.cto
payment/payment@0.2.0.cto
and signature/signature@0.2.0.cto
New Accord Project base models can now be found in https://github.com/accordproject/models/tree/master/src/accordproject
The Accord Project base models in https://github.com/accordproject/models/tree/master/src/cicero were designed very early on before we had a lot of experience with the programming model, with the Ergo type system, etc.
Before we go to Cicero
1.0
we should do a review of those models, decide whether any change would be useful/needed.This revision should be aligned with whatever decision we make on whether we keep or remove support for Concerto systems models. (See https://github.com/accordproject/concerto/issues/62)
Also, this revision should ideally address the use of a slightly different base model for Ergo type checking. (See https://github.com/accordproject/ergo/issues/698)