Contributing philosophy
=======================

.. contents::

Mission
-------
Corda is an open source project with the aim of developing an enterprise-grade distributed ledger platform for business across a variety of
industries.  Corda was designed and developed to apply the concepts of blockchain and smart contract technologies to the requirements of
modern business transactions.  It is unique in its aim to build a platform for businesses to transact freely with any counter-party while
retaining strict privacy. Corda provides an implementation of this vision in a code base which others are free to build on, contribute to
or innovate around. The mission of Corda is further detailed in the `Corda introductory white paper`_.

The project is supported and maintained by `R3 <https://www.r3.com>`_.

Community Locations
-------------------
The Corda maintainers, developers and extended community make active use of the following channels:

* The `Corda Slack team <http://slack.corda.net/>`_ for general community discussion, and in particular:

    * The ``#contributing`` channel for discussions around contributing
    * The ``#design`` channel for discussions around the platform's design

* The `corda-dev mailing list <https://groups.io/g/corda-dev>`_ for discussion regarding Corda's design and roadmap
* The `GitHub issues board <https://github.com/corda/corda/issues>`_ for reporting platform bugs and potential enhancements
* The `Stack Overflow corda tag <https://stackoverflow.com/questions/tagged/corda>`_ for specific technical questions

Project Leadership and Maintainers
----------------------------------
The leader of this project is currently `Mike Hearn <https://github.com/mikehearn>`_, who is also the Lead Platform Engineer at R3. The
project leader appoints the project's Community Maintainers, who are responsible for merging community contributions into the code base and
acting as points of contact.

In addition to the project leader and community maintainer(s), developers employed by R3 who have passed our technical interview process
have commit privileges to the repo. All R3 contributions undergo peer review, which is documented in public in GitHub, before they can be
merged; they are held to the same standard as all other contributions. The community is encouraged both to observe and participate in this
`review process <https://github.com/corda/corda/pulls>`_.

.. _community-maintainers:

Community maintainers
^^^^^^^^^^^^^^^^^^^^^
Current community maintainers:

* `Rick Parker <https://github.com/rick-r3>`_ - Contact me:

    * On the `Corda Slack team <http://slack.corda.net/>`_, either in the ``#community`` channel or by direct message using the handle
      ``@parkri``

    * By email: rick.parker at r3.com

We anticipate additional maintainers joining the project in the future from across the community.

Existing Contributors
---------------------
Over two hundred individuals have contributed to the development of Corda. You can find a full list of contributors in the
`CONTRIBUTORS.md list <https://github.com/corda/corda/blob/master/CONTRIBUTORS.md>`_.

Transparency and Conflict Policy
--------------------------------
The project is supported and maintained by `R3 <https://www.r3.com>`_. We develop in the open and publish our
`Jira <https://r3-cev.atlassian.net/projects/CORDA/summary>`_ to give everyone visibility. R3 also maintains and distributes a commercial
distribution of Corda. Our vision is that distributions of Corda be compatible and interoperable, and our contribution and code review
guidelines are designed in part to enable this.

As R3 is maintainer of the project and also develops a commercial distribution of Corda, what happens if a member of the
community contributes a feature which the R3 team have implemented only in their commercial product? How is this apparent conflict managed?
Our approach is simple: if the contribution meets the standards for the project (see above), then the existence of a competing commercial
implementation will not be used as a reason to reject it. In other words, it is our policy that should a community feature be contributed
which meets the criteria above, we will accept it or work with the contributor to merge/reconcile it with the commercial feature.

.. _`Corda introductory white paper`: _static/corda-introductory-whitepaper.pdf
