Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Governance and licensing updates #485

Merged
merged 14 commits into from
Dec 22, 2021
53 changes: 53 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# FDC3 Governance Policy

This document provides the governance policy for the development of the FDC3 specification and related materials in the FDC3 Standard Working Group (the “Working Group”).

## 1. Roles.

Working Group contributors include the following roles:

**1.1. Maintainer.** “Maintainers” are responsible for organizing activities around developing, maintaining, and updating the specification(s) developed by the Working Group. Maintainers are also responsible for determining consensus and coordinating appeals. The Working Group will designate one or more Maintainer(s). The Working Group may select a new or additional Maintainer(s) upon Approval of the Working Group Participants.

**1.2. Editor.** “Editors” are responsible for ensuring that the contents of the document accurately reflect the decisions that have been made by the group, and that the specification adheres to formatting and content guidelines. The Working Group will designate one or more Editor(s). The Working Group may select a new Editor upon Approval of the Working Group Participants.

**1.3. Participants.** “Participants” are those that have made Contributions to the Working Group subject to the [FINOS IP Policy](https://www.finos.org/hubfs/FINOS/governance/FINOS%20IP%20Policy.pdf).

**1.4. Discussion Groups.** The Working Group may form one or more "Discussion Groups" to organize collaboration around a particular aspect of a specification. Discussion Groups are for discussion only -- Approval of all portions of a specification is subject to the consensus-based decision making process.

## 2. Decision Making.

**2.1. Consensus-Based Decision Making.** The Working Group makes decisions through a consensus process (“Approval” or “Approved”). While the agreement of all Participants is preferred, it is not required for consensus. Rather, the Maintainer(s) will determine consensus based on their good faith consideration of a number of factors, including the dominant view of the Working Group Participants and nature of support and objections. The Maintainer(s) will document evidence of consensus in accordance with these requirements.

**2.2. Appeal Process.** Decisions may be appealed be via a pull request or an issue. The Maintainer(s) will consider each appeal in good faith and will respond in writing within a reasonable time.

## 3. Ways of Working.

Inspired by [ANSI’s Essential Requirements for Due Process](https://share.ansi.org/Shared%20Documents/Standards%20Activities/American%20National%20Standards/Procedures,%20Guides,%20and%20Forms/2020_ANSI_Essential_Requirements.pdf), the Working Group adheres to consensus-based due process requirements. These requirements apply to activities related to the development of consensus for approval, revision, reaffirmation, and withdrawal of specifications. Due process means that any person (organization, company, government agency, individual, etc.) with a direct and material interest has a right to participate by: a) expressing a position and its basis, b) having that position considered, and c) having the right to appeal. Due process allows for equity and fair play. The following constitute the minimum acceptable due process requirements for the development of consensus.

**3.1. Openness.** Participation shall be open to all persons who are directly and materially affected by the activity in question. There shall be no undue financial barriers to participation. Voting membership on the consensus body shall not be conditional upon membership in any organization, nor unreasonably restricted on the basis of technical qualifications or other such requirements. Membership in a Working Group’s parent organization, if any, may be required.

**3.2. Lack of Dominance.** The development process shall not be dominated by any single interest category, individual or organization. Dominance means a position or exercise of dominant authority, leadership, or influence by reason of superior leverage, strength, or representation to the exclusion of fair and equitable consideration of other viewpoints.

**3.3. Balance.** The development process should have a balance of interests. Participants from diverse interest categories shall be sought with the objective of achieving balance.

**3.4. Coordination and Harmonization.** Good faith efforts shall be made to resolve potential conflicts between and among deliverables developed under this Working Group and existing industry standards.

**3.5. Consideration of Views and Objections.** Prompt consideration shall be given to the written views and objections of all Participants.

**3.6. Written procedures.** This governance document and other materials documenting the specification development process shall be available to any interested person.

## 4. Standard Development Process.

**4.1. Pre-Draft.** Any Participant may submit a proposed initial draft document as a candidate Draft Specification of the Working Group. The Maintainer(s) will designate each submission as a “Pre-Draft” document.
kriswest marked this conversation as resolved.
Show resolved Hide resolved

**4.2. Draft.** Each Pre-Draft document of the Working Group must first be Approved to become a “Draft Specification”. Once the Working Group approves a document as a Draft Specification, the Draft Specification becomes the basis for all going forward work on that specification.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'approval' referred to is essentially review by the maintainers, who are supposed to try and apply a consensus-based decision from the SWG.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct.

Copy link
Contributor

@kriswest kriswest Nov 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@RexJaeschke RexJaeschke Nov 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re the use of "S/specification," our current thinking is to use "Standard" and that "Specification" (uppercase) not be used. Kris has come up with new section names that eliminate such uses of. That said, we could revert to "Specification" instead, but should think that through a bit. Then there is the question of whether we should ever use "specification" (lowercase) anywhere regardless of the previous sentence outcome. The original confusion for me arose from the use of "Specification" in section headers, which suggested they were part of the requirements while other sections without that were not, simply because of the implicit understanding of what "Specification" means.

FWIW, ISO requires "Specification" rather than "Standard."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copiesofcopies I think I was still slightly off (I realised after reading @scooter99boston's clarification). Rather, our process is:

  • various contributions are made by participants,
    • consensus (of the Standard Working Group) is checked (by the maintainers) on inclusion,
    • PRs are reviewed by an editor and maintainers then merged to our master branch
  • Maintainers designated the master branch as a 'Pre-Draft' version of the standard
  • That is then submitted back to the Standards working group for review and vote on adoption - which progresses it to the status of a Draft (4.3).
  • We then do any work necessary to publish the standard, at which point it is published (4.4)

While writing this I spotted a further issue:

4.3. Working Group Approval. Once the Working Group believes it has achieved the objectives for its specification as described in the Scope,

I don't know what "the Scope" is or where it's defined as that document (from the Standards Project Blueprint) is not part of this PR. The scope is defined in the FDC3 Charter here: https://fdc3.finos.org/docs/fdc3-charter

Perhaps we should pull that content in to create the scope document OR refer out to it. If we're trying to head towards the full CSL I would suggest the former is the way to go. Do you agree?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copiesofcopies as its referred to, should we bring in the scope doc (from the Standards Project Blueprint) and populate with details from https://fdc3.finos.org/docs/fdc3-charter ?

Can you do that or should I raise a PR (into yours?) to do so?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @kriswest thanks for catching this. I think it makes sense to include a scope file as you suggested. I've added a proposed scope to the pull request, incorporating the FDC3 mission (with minor changes to adapt it to the purpose) and scope (unchanged).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks @copiesofcopies.

I've raised a separate issue, #529, to cover adding a description of how we implement this governance to the README and website - hence I think this is now good to go!


**4.3. Working Group Approval.** Once the Working Group believes it has achieved the objectives for its specification as described in the Scope, it will Approve that Draft Specification and progress it to “Approved Specification” status.
kriswest marked this conversation as resolved.
Show resolved Hide resolved

**4.4. Publication and Submission.** Upon the designation of a Draft Specification as an Approved Specification, the Maintainer(s) will publish the Approved Specification in a manner agreed upon by the Working Group Participants (i.e., Working Group Participant only location, publicly available location, Working Group maintained website, Working Group member website, etc.). The publication of an Approved Specification in a publicly accessible manner must include the terms under which the Approved Specification is being made available under.

**4.5. Submissions to Standards Bodies.** No Draft Specification or Approved Specification may be submitted to another standards development organization without Working Group Approval. Upon reaching Approval, the Maintainer(s) will coordinate the submission of the applicable Draft Specification or Approved Specification to another standards development organization. Working Group Participants that developed that Draft Specification or Approved Specification agree to grant the copyright rights necessary to make those submissions.

## 5. Non-Confidential, Restricted Disclosure.

Information disclosed in connection with any Working Group activity, including but not limited to meetings, Contributions, and submissions, is not confidential, regardless of any markings or statements to the contrary. Notwithstanding the foregoing, if the Working Group is collaborating via a private repository, the Participants will not make any public disclosures of that information contained in that private repository without the Approval of the Working Group.
102 changes: 102 additions & 0 deletions PATENTS-FDC3-1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# FDC3 v. 1.0 Final Specification Agreement
kriswest marked this conversation as resolved.
Show resolved Hide resolved

## 1. The Purpose of this Agreement.

This Agreement sets forth the terms under which I make certain copyright and patent rights available to you for your Permitted Uses of the Specification. Capitalized terms are defined in the Agreement’s last section.

## 2. Copyrights.

**2.1 Copyright Grant.** I grant to you a perpetual (for the duration of the applicable copyright), worldwide, non-exclusive, no-charge, royalty-free, copyright license, without any obligation for accounting to me, to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, distribute, and implement the Specification to the full extent of my copyright interest in the Specification.

**2.2 Attribution.** As a condition of the copyright grant, you must include an attribution to the Specification in any derivative work you make based on the Specification. That attribution must include, at minimum, the Specification name and version number.

## 3. Patents.

### 3.1. Patent Non-Assert.

#### 3.1.1. The Promise.

I, on behalf of myself and my successors in interest and assigns, irrevocably promise not to assert my Granted Claims against you for your Permitted Uses, subject to the terms and conditions of Section 3.1. This is a personal promise directly from me to you, and you acknowledge as a condition of benefiting from it that no rights from me are received from suppliers, distributors, or otherwise in connection with this promise. This promise also applies to your Permitted Uses of any other specifications incorporating all required portions of the Specification.

#### 3.1.2. Termination.

**3.1.2.1. As a Result of Claims by You.** All rights, grants, and promises made by me to you under this Agreement are terminated if you file, maintain, or voluntarily participate in a lawsuit against me or any person or entity asserting that its Permitted Uses infringe any Granted Claims you would have had the right to enforce had you signed this Agreement, unless that suit was in response to a corresponding suit first brought against you.

**3.1.2.2. As a Result of Claims by a Related Entity of Mine.** If a Related Entity of mine files, maintains, or voluntarily participates in a lawsuit asserting that a Permitted Use infringes any Granted Claims it would have had the right to enforce had it signed this Agreement, then I relinquish any rights, grants, and promises I have received for the Specification from other signatories of this Agreement, unless a) my promise to you was terminated pursuant to section 3.1.2.1, or b) that suit was in response to a corresponding suit first brought by you against the Related Entity.

#### 3.1.3. Additional Conditions.

This promise is not an assurance (i) that any of my copyrights or issued patent claims cover an implementation of the Specification or are enforceable or (ii) that an implementation of the Specification would not infringe intellectual property rights of any third party. Notwithstanding the personal nature of my promise, this promise is intended to be binding on any future owner, assignee or exclusive licensee to whom has been given the right to enforce any Granted Claims against third parties.

#### 3.1.4. Bankruptcy.

Solely for purposes of Section 365(n) of Title 11, United States Bankruptcy Code and any equivalent law in any foreign jurisdiction, this promise will be treated as if it were a license and you may elect to retain your rights under this promise if I (or any owner of any patents or patent applications referenced herein), as a debtor in possession, or a bankruptcy trustee, reject this non-assert.

### 3.2. Patent License Commitment.

In addition to rights granted in 3.1, on behalf of me and my successors in interest and assigns, I agree to grant to you a no charge, royalty free license to my Granted Claims on reasonable and non-discriminatory terms, where such license applies only to those Granted Claims infringed by the implementation of the Specification, solely for your Permitted Uses.

## 4. No Other Rights.

Except as specifically set forth in this Agreement, no other express or implied patent, trademark, copyright, or other property rights are granted under this Agreement, including by implication, waiver, or estoppel.

## 5. Antitrust Compliance.

I acknowledge that I may compete with other participants, that I am under no obligation to implement the Specification, that each participant is free to develop competing technologies and standards, and that each party is free to license its patent rights to third parties, including for the purpose of enabling competing technologies and standards.

## 6. Non-Circumvention.

I agree that I will not intentionally take or willfully assist any third party to take any action for the purpose of circumventing my obligations under this Agreement.

## 7. Representations, Warranties and Disclaimers.

I represent and warrant that I am legally entitled to grant the rights and promises set forth in this Agreement. IN ALL OTHER RESPECTS THE SPECIFICATION IS PROVIDED "AS IS." The entire risk as to implementing or otherwise using the Specification is assumed by the implementer and user. Except as stated herein, I expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the Specification. IN NO EVENT WILL ANY PARTY BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. All of my obligations under Section 3 regarding the transfer, successors in interest, or assignment of Granted Claims will be satisfied if I notify the transferee or assignee of any patent that I know contains Granted Claims of the obligations under Section 3. Nothing in this Agreement requires me to undertake a patent search.

## 8. Definitions.

**8.1. Agreement.** “Agreement” means this Final Specification Agreement, which sets forth the rights, grants, promises, limitations, conditions, obligations, and disclaimers made available for the particular Specification.

**8.2. Bound Entities.** “Bound Entities” means the entity listed below and any entities that the Bound Entity Controls.

**8.3. Control.** “Control” means direct or indirect control of more than 50% of the voting power to elect directors of that corporation, or for any other entity, the power to direct management of such entity.

**8.4. Granted Claims.** "Granted Claims" are those patent claims that I own or control, including those patent claims I acquire or control after the Date below, that are infringed by Permitted Uses. Granted Claims include only those patent claims that are infringed by the implementation of any portions of the Specification where the Specification describes the functionality causing the infringement in detail and does not merely reference the functionality causing the infringement.

**8.5. I, Me, or My.** “I,” “me,” or “my” refers to the signatory below and its Bound Entities, if applicable.

**8.6. Permitted Uses.** “Permitted Uses” means making, using, selling, offering for sale, importing or distributing any implementation of the Specification 1) only to the extent it implements the Specification and 2) so long as all required portions of the Specification are implemented. Permitted Uses do not extend to any portion of an implementation that is not included in the Specification.

**8.7. Related Entities.** “Related Entities” means 1) any entity that Controls the Bound Entity (“Upstream Entity”), and 2) any other entity that is Controlled by an Upstream Entity that is not itself a Bound Entity.

**8.8. Specification.** “Specification” means the Specification identified below.
kriswest marked this conversation as resolved.
Show resolved Hide resolved

**8.9. You or Your.** “You,” “you,” or “your” means any person or entity who exercises copyright or patent rights granted under this Agreement, and any person or entity you Control.


# Scope


Specification and version this Agreement applies to:
FDC3 version 1.0, comprising the following specifications:
API (https://fdc3.finos.org/docs/1.0/api/api-spec)
Intents (https://fdc3.finos.org/docs/1.0/intents-spec)
Context Data (https://fdc3.finos.org/docs/1.0/context-spec)
App Directory (https://fdc3.finos.org/docs/1.0/appd-spec)

The “required portions” of the specifications as referenced in Section 8.6 (“Permitted Uses”) are defined by https://fdc3.finos.org/docs/1.0/fdc3-compliance.
kriswest marked this conversation as resolved.
Show resolved Hide resolved


# Signatures

I certify that I am authorized to execute this agreement on behalf of the Bound Entity named below, and that all promises made herein relating to this Specification are commitments of the Bound Entity.

* Adaptive Financial Consulting, 110 Bishopsgate, London EC2N 4AY, UK (2019-03-13)
* ChartIQ, Inc., 609 East Market St, Suite 111, Charlottesville, VA 22902 (2019-03-12)
kriswest marked this conversation as resolved.
Show resolved Hide resolved
* Cloud9 Tehnologies LLC, 565 5th Avenue, 18th Floor, NY, NY 10017 (2019-03-21)
* FactSet Research Systems Inc., 601 Merritt 7, 3rd Floor, Norwalk, CT 06851 (2019-05-28)
* Green Key Technologies, 55 W Monroe St Suite 1650, Chicago IL 60603 (2019-04-04)
* IHS Markit, 450 West 33rd Street, New York, NY 10001 (2019-04-05)
* OpenFin Inc., 25 Broadway, FL9, New York, NY 10004 (2019-03-12)
* Refinitiv, 3 Times Square, New York, NY 10036 (2019-03-14)
* Scott Logic, 1 St. James Gate, Newcastle, NE1 4XF, UK
* Tick42 OOD, 31 Aleksandar Malinov Blvd, Sofia 1729, Bulgaria
5 changes: 5 additions & 0 deletions PATENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# FDC3 Patent Terms

Version 1.0 of the FDC3 specification is licensed under the [FDC3 1.0 Final Specification License](PATENTS-FDC3-1.0.md).

Subsequent FDC3 specifications and draft specifications are subject to the [FINOS IP Policy](https://www.finos.org/hubfs/FINOS/governance/FINOS%20IP%20Policy.pdf), which authorizes implementation of FDC3 specifications without charge, on a RAND basis, subject to the terms of the policy. For details of the IP commitments made by contributors to FDC3, please refer to the policy.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,10 @@ _NOTE:_ Commits and pull requests to FINOS repositories will only be accepted fr

# License

Copyright 2017-2021 FINOS
Copyright 2017-2021 FINOS and FDC3 Participants

Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
Version 1.0 of the FDC3 specification is licensed under the [FDC3 1.0 Final Specification License](PATENTS-FDC3-1.0.md).

SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)
Subsequent FDC3 specifications and draft specifications are subject to the [FINOS IP Policy](https://www.finos.org/hubfs/FINOS/governance/FINOS%20IP%20Policy.pdf), which authorizes implementation of FDC3 specifications without charge, on a RAND basis, subject to the terms of the policy. For details of the IP commitments made by contributors to FDC3, please refer to the policy.

Reference implementations and other software contained in FDC3 repositories is licensed under the [Apache License, Version 2.0](LICENSE) unless otherwise noted. SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0).
21 changes: 21 additions & 0 deletions SCOPE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Scope

The FDC3 standard specifies protocols and taxonomies to advance the ability of desktop applications in financial workflows to interoperate in a plug-and-play fashion, without prior bi-lateral agreements.

Financial desktop applications include any app used in common financial workflows:

* Traditional native applications implemented in C++, .NET, Java, Python, etc.
* Hybrid web/native applications - stand alone native apps embedding Chromium (e.g. Electron, CEF, NW.js)
* Desktop web applications - platform based apps extending Chromium (e.g. OpenFin, Finsemble, Glue42)
* Common desktop applications not specific to finance, but critical to workflows - such as Excel, Outlook, etc.
* PWAs & Web applications running in a commercial browser

This standards group is focused specifically on the desktop. Activities of the desktop interoperability group do not include:

* Defining financial objects - where existing standards are well established
* Interoperability between mobile apps
* Interoperability via REST or other client to server communication

Note: While these areas are out of scope, compatibility with Mobile and/or REST are still valid points of consideration for the FDC3.

Any changes of Scope are not retroactive.