Skip to content

Commit

Permalink
Merge branch 'master' into chris.rayner_auth0_6218a76c221be60071967b9…
Browse files Browse the repository at this point in the history
…0-AvailabilityAndLocates
  • Loading branch information
chrisisla authored Oct 3, 2023
2 parents a4370c7 + 5272c99 commit 5d05995
Show file tree
Hide file tree
Showing 40 changed files with 591 additions and 303 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/windows-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: CDM Build on Windows machine

on: [workflow_dispatch, push, pull_request]

jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: maven
- name: Maven install
run: mvn install
17 changes: 9 additions & 8 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# _Event Model - Enhancements for Party Role Enum - Service Provider_
# *Product Model - Qualification - Bond Forwards*

_Background_

The existing party roles are not sufficient to identify if a counterparty is acting as a third-party service provider or CCP for the compression event. A new party role enum value is needed to uniquely identify a party acting as a compression service provider in the context of the business event.
This release expands the coverage of the composable product qualification to include bond forwards.

_What is being released?_

This release provides the ability to associate a party as a compression service provider.
The following function updates have been made in the `cdm.product.qualification` namespace:

_Enumerations_

- Augmented the `PartyRoleEnum` enumeration with new `CompressionServiceProvider` value to represent counterparties acting as compression service providers.
- Updated `Qualify_AssetClass_InterestRate` to include Bond Forward use case
- Added `Qualify_InterestRate_Forward_Debt` to qualify when a forward payout with a debt security underlier exists, as per the ISDA Taxonomy
- Updated `Qualify_AssetClass_Equity` to include Bond Forward use case
- Added `Qualify_BaseProduct_EquityForward` to qualify a product as having the ISDA Taxonomy Asset Class classification Equity and Base Product Classification Forward

_Review directions_

In the CDM Portal, select the Textual Browser and inspect the change identified above.
In the CDM Portal, select the Textual Browser and inspect each of the changes identified above.

Inspect Pull Request: [#2369](https://github.com/finos/common-domain-model/pull/2369)
Inspect Pull Request: https://github.com/finos/common-domain-model/pull/2392
23 changes: 21 additions & 2 deletions codefresh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ steps:
releaseNameNotDefined: "${{TAG_REPO}} == true"
commands:
- cf_export RELEASE_NAME=${{TAG_NAME}}
- cf_export MAVEN_BUILD_PROFILES="daml,scala,typescript,golang,csharp8,csharp9,kotlin,python,full,gpg"
- cf_export MAVEN_BUILD_PROFILES="daml,scala,typescript,golang,csharp8,csharp9,kotlin,python,full,gpg,excel"
- cf_export MVN_DEPLOY_FILE_FLAGS="${{MVN_BUILD_FLAGS}} ${{MVN_DEPLOY_FLAGS}} -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2 -DrepositoryId=ossrh-distro -Dgpg.passphrase=${{GPG_PASSPHRASE}}"

SnapshotProperties:
Expand All @@ -49,7 +49,7 @@ steps:
releaseNameNotDefined: "${{TAG_REPO}} == false"
commands:
- cf_export RELEASE_NAME=${{GLOBAL_RELEASE_VERSION}}.${{CF_BRANCH_TAG_NORMALIZED}}-SNAPSHOT
- cf_export MAVEN_BUILD_PROFILES="daml,scala,typescript,golang,csharp8,csharp9,kotlin,python,gpg"
- cf_export MAVEN_BUILD_PROFILES="daml,scala,typescript,golang,csharp8,csharp9,kotlin,python,gpg,excel"
- cf_export MVN_DEPLOY_FILE_FLAGS="${{MVN_BUILD_FLAGS}} ${{MVN_DEPLOY_FLAGS}} -Durl=https://oss.sonatype.org/content/repositories/snapshots -DrepositoryId=ossrh -Dgpg.passphrase=${{GPG_PASSPHRASE}}"

Build:
Expand Down Expand Up @@ -237,6 +237,23 @@ steps:
- tar -cvzf cdm-python-${{RELEASE_NAME}}.tar.gz python_cdm-*-py3-none-any.whl runtime/rosetta_runtime-*-py3-none-any.whl
- python3 ${{GEN_DEPLOY_POM_PY}} cdm-python ${{RELEASE_NAME}} tar.gz ${{CF_VOLUME_PATH}}/${{CF_REPO_NAME}}/rosetta-source/src/main/resources/build-resources/python/python-developer.txt
- mvn gpg:sign-and-deploy-file ${{MVN_DEPLOY_FILE_FLAGS}} -Dfile=cdm-python-${{RELEASE_NAME}}.tar.gz -DgroupId=org.finos.cdm -DartifactId=cdm-python -Dversion=${{RELEASE_NAME}} -Dpackaging=tar.gz -DpomFile=cdm-python-${{RELEASE_NAME}}.pom
DeployExcel:
stage: 'build'
title: Excel deploy
fail_fast: false
image: maven:3.8.2-jdk-11
working_directory: ./rosetta-source/
shell: bash
commands:
- bash -c "${{GPG_IMPORT_COMMAND}}"
- cd src/generated/excel
- mv model.xlsx encoded.model.xlsx
- base64 -d encoded.model.xlsx > model.xlsx
- rm encoded.model.xlsx
- cd ../
- tar -cvzf cdm-excel-${{RELEASE_NAME}}.zip excel
- ${{GEN_DEPLOY_POM_SCRIPT}} cdm-excel ${{RELEASE_NAME}} zip
- mvn gpg:sign-and-deploy-file ${{MVN_DEPLOY_FILE_FLAGS}} -Dfile=cdm-excel-${{RELEASE_NAME}}.zip -DgroupId=org.finos.cdm -DartifactId=cdm-excel -Dversion=${{RELEASE_NAME}} -DpomFile=cdm-excel-${{RELEASE_NAME}}.pom

NotifySlackOnFail:
stage: 'finalise'
Expand All @@ -262,6 +279,7 @@ steps:
deployGoFailed: steps.DeployGo.result == 'error'
deployKotlinFailed: steps.DeployKotlin.result == 'error'
deployPythonFailed: steps.DeployPython.result == 'error'
deployExcelFailed: steps.DeployExcel.result == 'error'
commands:
- export SAFE_COMMIT_AUTHOR='${{CF_COMMIT_AUTHOR}}'
- export COMMIT_AUTHOR=${SAFE_COMMIT_AUTHOR:-MissingAuthor}
Expand Down Expand Up @@ -294,6 +312,7 @@ steps:
goDeployFailure: steps.DeployGo.result == 'failure'
kotlinDeployFailure: steps.DeployKotlin.result == 'failure'
pythonDeployFailure: steps.DeployPython.result == 'failure'
excelDeployFailure: steps.DeployExcel.result == 'failure'
commands:
- exit 1

Expand Down
9 changes: 1 addition & 8 deletions docs/cdm-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ the development of the CDM in open source.

## Scope

The product scope of the CDM includes OTC derivatives, cash securities,
securities financing, and commodities.
The CDM covers OTC derivatives, cash securities, securities financing, commodities, and can expand to include other Capital Markets products and Asset Classes.

# CDM Components

Expand Down Expand Up @@ -174,9 +173,3 @@ file in the CDM jar.

For more details, please follow the
[CDM Java Distribution Guidelines](/docs/cdm-guidelines).

---
**Note:**
These guidelines are intended as a technical documentation for
developers to make use of the Java distribution in their implementation.
---
71 changes: 50 additions & 21 deletions docs/contribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,11 @@ title: Development Guidelines

# Governance

The CDM is an open source project with a governance framework that
regulates any contribution to its on-going development. A three-tiered
committee structure pilots the development of the CDM:

1. The *CDM Executive Committee* is accountable for setting the
strategy, promoting adoption of the standard, and overseeing the
activity of the Working Groups and the Architecture & Review
Committee. Members are senior executives appointed by the FINOS Board
considering their strategic influence in the decision making at
their firm and active contribution to the development of the CDM.
2. The *CDM Architecture and Review Committee* is responsible for
specifying the technical and modelling guidelines and reviewing and
approving proposals for new modelling components introduced by the
CDM Working Groups. Members include subject matter experts, senior
technologists, as well as practitioners in business process, legal
documentation, and technical modelling.
3. The *CDM Working Groups* are assembled per subject matter or use
cases to actively develop and implement concretely targeted elements
of the CDM. Participants include FINOS members and non-members from
the CDM user community who commit time and effort for the
development and implementation of the CDM as a global standard.
The Common Domain Model is an open standard project hosted under FINOS, the [Fintech Open Source Foundation](https://community.finos.org/docs/governance/Standards-Projects), starting in February 2023.

The standard is developed through the [Community Specification](https://community.finos.org/docs/governance/#open-standard-projects) open governance process, and underlying code assets are released under the [Community Specification License 1.0](https://github.com/finos/standards-project-blueprint/blob/master/governance-documents/4._License.md). For versions before 4.0.0 and other license details, check [Notice.md](https://github.com/finos/common-domain-model/blob/master/NOTICE.md).

For a more detailed overview of the existing Working Group and standard Participants, Editors and Maintainers, please see [Governance.md](https://github.com/finos/standards-project-blueprint/blob/master/governance-documents/5._Governance.md). For more information on discussions and announcements subscribe to our mailing list using the following [link](mailto:[email protected]).

Committee members or any user of CDM within the community can propose
amendments in accordance with the following process:
Expand All @@ -43,6 +27,51 @@ reviewing, revising or extending the proposal.
Once approved, the amendment will be scheduled to be merged with the
CDM's main code branch by the CDM Maintainers.

### Roles
The CSL specifies [three different contribution roles](https://github.com/finos/standards-project-blueprint/blob/master/governance-documents/5._Governance.md#1roles) for each specific Working Group:

* Maintainers - those who drive consensus within the working group
* Editors - those who codify ideas into a formal specification
* Participants - anyone who provides contributions to the project under a signed CSL CLA. A great way to sign the CLA is to open a Pull Request to add your name to the [Participants.md](https://github.com/finos/standards-project-blueprint/blob/master/governance-documents/participants.md) file.

# Working Groups

**2.1.0 Any Participant may propose a Working Group.** Proposals for the formation of a new Working Group are made by completion of a new [new CDM Working Group](https://github.com/finos/common-domain-model) template, clearly stating the objectives, deliverables and committed maintainers/editors for the proposed Working Group.

**2.1.1 Approval of Specification Changes by Working Groups.** Participants of each Working Group approve the “proposed” changes from that working group; the “approved changes” within a given Working Group will be brought to the Steering Working Group as a proposed “Pre-Draft” contribution.

* Participants of the CDM Steering Working Group approve DRAFT specification releases.
* Maintainers of the CDM Steering Working Group will approve merging of the proposed “Pre-Draft” changes (coming from other Working Groups or otherwise from community) into the repo.

**2.2.0 CDM Steering Working Group.** The CDM Steering Working Group will review and approve completed Working Group formation proposals per 2.1.0.

**2.2.1 CDM Steering Working Group Purpose:** The Steering Working Group is responsible for developing the technical and modelling guidelines, setting and revising the project’s strategic roadmap, and for vetting proposed changes. The CDM Steering Working Group may approve or establish additional working groups.

**2.2.2 Appointment of CDM Steering Working Group Maintainers:**

* At the launch of the project, up to two initial Maintainers will be nominated by ICMA, ISDA, and ISLA (collectively, the “trade associations”).
* Additional CDM Steering Group Maintainers may be proposed by Participants. Proposed maintainers will be approved via consensus of the Participants and with agreement of existing Maintainers, and should meet the following criteria:
* Proven experience in data modelling and/or software development in financial markets.
* In-depth understanding and proven track record of contribution to the CDM, as well as other data standards (such as ISO) and messaging protocols (such as FIX, FpML or Swift).

**2.2.3 CDM Steering Working Group Decision Making:** As outlined in [governance.md](https://github.com/finos/standards-project-blueprint/blob/master/governance-documents/5._Governance.md#2decision-making), The CDM Steering Working Group will operate by consensus-based decision-making. Maintainers are responsible for determining and documenting when consensus has been reached. In the event a clear consensus is not reached, Maintainers may call for a simple majority vote of Participants to determine outcomes.

**2.2.4 CDM Steering Working Group Appointment of the Editor(s):** Editors will review and implement pull requests not expressed in code, test and release new functionalities, resolve bugs and implement approved improvements.

## CDM Design Principles

Contributions to the CDM have to comply with the following set of design principles that include the following concepts:

* **Normalisation** through abstraction of common components
* **Composability** where objects are composed and qualified from the bottom up
* **Mapping** to existing industry messaging formats
* **Embedded logic** to represent industry processes
* **Modularisation** into logical layers \

## CDM development guidelines

The CDM Development Guidelines are defined by the Steering Working Group. The full set of CDM development guidelines can be found [here](https://cdm.docs.rosetta-technology.io/source/contribution.html).

## Version Management

The CDM is developed, built and released using standard software
Expand Down
45 changes: 23 additions & 22 deletions docs/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,51 +40,52 @@ the following dependency needs to be added to the project pom.xml:
Examples of how you can use
the CDM can be found in GitHub: [CDM GitHub Examples](https://github.com/finos/common-domain-model/tree/master/examples).

## CDM as PYTHON
## CDM as Python

CDM as PYTHON is available as a `.zip` file published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-python).
CDM as Python is available as a `.zip` file published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-python/versions).

## CDM as DAML

CDM as DAML is available as a set of `.dar` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-daml).
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-daml/versions).

## CDM as Scala

CDM as Scala is available as a `.jar` file published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-scala).
CDM as Scala is available as a `.jar` file published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-scala/versions).

## CDM as C# 8.0

CDM as C# 8.0 is available as a `tar.gz` file containing
compiled `.dll` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-csharp8).
CDM as C# 8.0 is available as a `tar.gz` file containing compiled `.dll` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-csharp8/versions).

## CDM as C# 9.0

CDM as C# 9.0 is available as a `tar.gz` file containing
compiled `.dll` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-csharp9).
CDM as C# 9.0 is available as a `tar.gz` file containing compiled `.dll` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-csharp9/versions).

## CDM as Go

CDM as Go is available as a `tar.gz` file containing the
`.go` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-csharp9).
CDM as Go is available as a `tar.gz` file containing the `.go` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-golang/versions).

## CDM as TypeScript

CDM as TypeScript is available as a `tar.gz` file containing
the `.ts` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-typescript).
CDM as TypeScript is available as a `zip` file containing the `.ts` files published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-typescript/versions).

# CDM as Kotlin
## CDM as Kotlin

CDM as Kotlin is available as a `.jar` file published
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-scala).
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-scala/versions).

# CDM Event Specification Module as DAML
## CDM as Excel

CDM as Excel is available as a `zip` file containing CDM Types, Attributes and Enums in a `.xlsx`file
[here](https://central.sonatype.com/artifact/org.finos.cdm/cdm-excel/versions).

## CDM Event Specification Module as DAML

CDM Event Specification Module as DAML is available
[here](https://github.com/digital-asset/lib-cdm-event-specification-module).
[here](https://github.com/digital-asset/lib-cdm-event-specification-module/versions).
6 changes: 3 additions & 3 deletions docs/eligible-collateral-representation.md
Original file line number Diff line number Diff line change
Expand Up @@ -670,8 +670,8 @@ taxonomy source.
- The data attribute `taxonomySource` must be specified and will
provide the following options through the enumerations list:
- CFI (The ISO 10962 Classification of Financial Instruments code)
- FINOS (The FINOS product taxonomy)
- ICAD (FINOS Collateral Asset Definition Identifier code)
- ISDA (The ISDA product taxonomy)
- ICAD (ISDA Collateral Asset Definition Identifier code)
- EU EMIR Eligible Collateral Asset Class (European Union Eligible
Collateral Assets classification categories based on EMIR
Uncleared Margin Rules)
Expand All @@ -683,7 +683,7 @@ taxonomy source.
Margin Rules published by the CFTC and the US Prudential
Regulators)

The options CFI, FINOS and ICAD would be further expressed with the
The options CFI, ISDA and ICAD would be further expressed with the
flexible data *'string'* representation through data type
`ProductTaxonomy`.

Expand Down
2 changes: 1 addition & 1 deletion docs/event-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,7 @@ for the event named in that taxonomy. Like Product Qualification
functions, the Event Qualification function name is prefixed with the
word `Qualify_` followed by the taxonomy name.

The CDM uses the FINOS taxonomy V2.0 leaf level to qualify the event. 22
The CDM uses the ISDA taxonomy V2.0 leaf level to qualify the event. 23
lifecycle events have currently been qualified as part of the CDM.

One distinction with the product approach is that the `intent`
Expand Down
21 changes: 21 additions & 0 deletions docs/get-involved.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Get Involved
---

## Interact with the CDM community

**GitHub**

CDM activity primarily happens in this [CDM GitHub repository](https://github.com/finos/common-domain-model). [Watch](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository) the repository in order to be notified of new Pull Requests and issues.

**Email**

If you'd like to receive official updates, please send an email to [email protected]. You can join the CDM mailing list by sending an email to [[email protected]](mailto:[email protected]).

**Meetings**

Finally, another great way to interact with the community is to attend the bi-weekly CDM Contribution Review Working Group, monthly Collateral Working Group, monthly FINOS CDM Structured Products Working Group, monthly Steering Technology Architecture Working Group, and/or quarterly FINOS CDM Steering Working Group: email [email protected] to be added to the meeting invites directly, or find the meeting in the [FINOS Community Calendar](https://calendar.google.com/calendar/embed?src=finos.org_fac8mo1rfc6ehscg0d80fi8jig%40group.calendar.google.com).

**Need help?**

Email [email protected]. if you need help getting started in the CDM Community or if you encounter technical difficulties accessing repositories, mailing lists or meetings.
1 change: 1 addition & 0 deletions docs/home.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@ Welcome to CDM documentation !
* [Eligible Collateral Representation](/docs/eligible-collateral-representation)
* [CDM Java Distribution Guidelines](/docs/cdm-guidelines)
* [Development Guidelines](/docs/contribution)
* [Get Involved](/docs/get-involved)
* [Download](/docs/download)

Loading

0 comments on commit 5d05995

Please sign in to comment.