Code Monkey home page Code Monkey logo

common-domain-model's Introduction

FINOS - Incubating

Codefresh build status

Common Domain Model (CDM)

The Common Domain Model is an open standard project hosted under FINOS, the Fintech Open Source Foundation, starting in February 2023.

The standard is developed through the Community Specification open governance process, and underlying code assets are released under the Community Specification License 1.0. For versions before 4.0.0 and other license details, check License.md

To participate in the standard process and working group meetings, enroll as a participant by completing a Community Specification Contributor License Agreement (CSL CLA). All meetings are to be held in accordance with the FINOS policies and procedures.

For a more detailed overview of the existing Working Group and standard Participants, Editors and Maintainers, please see Governance.md. For more information on discussions and announcements subscribe to our mailing list using the following link.

Governance overview

Roles

The CSL specifies three different contribution roles 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 file.

Active Working Groups

The following Working Groups are currently activated or about to be setup for this project:

Changes to the CDM may be proposed by CDM Working Groups, individual corporate contributors, or individual contributors.

alt_text

2. 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 CDM Working Group 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, 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.

Contributing

See guidelines here.

Contribution via Rosetta

The Rosetta Design application can be used to contribute to the CDM without setting up any development environment. Rosetta Design’s source control integration means that a PR is automatically created to a fork of the FINOS CDM under the Rosetta Models GitHub Organisation.

Steps:

  1. Create a Workspace for the CDM in Rosetta Design
  2. Review and contribute change in Rosetta Design - which will create PR in the rosetta-models organisation
  3. Create a PR to the Finos Github. See instructions here

Contributing via GitHub

  1. Fork it (<https://github.com/finos/cdm)
  2. Create your feature branch (git checkout -b feature/my-new-feature)
  3. Make a change - hint you can make changes to Rosetta files directly on your desktop using the Rosetta VS Code plugin
  4. Read our contribution guidelines and Community Code of Conduct
  5. Commit your changes (git commit -am 'My New Feature')
  6. Push to the branch (git push origin feature/my-new-feature)
  7. Create a new Pull Request

Documentation

The CDM has extensive documentation which is kept up to date. Any change to the CDM should be accompanied by documentation. See docs guide here

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email [email protected]

License

Copyright 2021 FINOS and CDM Participants

Specifications in the repository are subject to the Community Specification License 1.0 available in the LICENSE.md file.

common-domain-model's People

Contributors

hugohills-regnosys avatar minesh-s-patel avatar jim-h-wang avatar payalkhanna avatar lolabeis avatar tomclforwood avatar davidalk avatar nigelcobb avatar hugohills avatar nikos-sotiropoulos avatar dhuebner avatar tsanborn-isda avatar rvincentisda avatar regnosys-prod-user avatar brtaft avatar jimbo-w avatar simoncockx avatar valdensmith avatar regnosys-ops avatar ja6a-regnosys avatar jasonkrohn-regnosys avatar wcylou avatar jankoehnlein avatar iansloyan avatar janbaserba avatar eacunaisda avatar maoo avatar sattarian2020 avatar mstane-regnosys avatar robmoffat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.