Contribute

There are 3 primary forms of contribution to FINOS:

It's not all about the code

Contribution is not only about code. Raising issues, sending pull request to documentation, emailing feedback to our mailing lists, even contributing to our Community Blog or helping us putting up an event are all perfectly valid ways to contribute to the Community. 

A great place to start is to email our community@finos.org list and asking the Community itself where you can help


Contribution of code to an existing FINOS project


The easiest way to engage is to contribute code, documentation, test cases, requirements, issues and pull requests, etc. to projects that are currently within the Foundation. A great place to start is the good first issues in the FINOS GitHub organization.

Before contributing to a project, community members are encouraged to take a "participate first, contribute second" approach whereby they first familiarize themselves with a project by doing any or all of the following:

  • Attend a couple of project or working group meetings (note: not all projects run regularly scheduled meetings)

  • Follow and participate in discussions within the participate first meetings that are attended.

  • Getting involved in discussions within a project or working group's respective Google Group mailing list. 

Often, though not always, after getting familiar with a project's work, usually by attending a project meeting and/or participating in FINOS working groups a contributor may choose to start making concrete contributions to currently active FINOS projects. Contributions can take various forms:

  • Creating/Identifying a GitHub/GitLab Issue

  • Starting a new discussion thread

  • Extending and amending documentation (**)

  • Actively raising code contributions (**)

** Forms of contribution that require a contributor to make git commits, and in turn, request those to be merged via pull requests, must have a Contributor License Agreement in place within FINOS. See box on the right column for details.


Contribution agreement required

Each contribution to a Foundation open source project must be covered by a contributor license agreement (CLA). This is a legal agreement granting the Foundation the necessary rights (under copyright and patent laws) to distribute the contribution.

If your employer owns the rights to your contributions, you should submit a Corporate Contributor License Agreement (CCLA) signed by an authorized representative of your employer.

Visit the FINOS Contribution Compliance Requirements page for more information about CLAs.


Contribution of an existing code base into FINOS as a new project

Do you have an existing product, project, or activity that would be a good fit within the FINOS community? Here's how to propose a new contribution.

Pre-Work: Contribution Fitness

First off, you want to evaluate whether the contribution is suitable for a Foundation-hosted open source project, in terms of long term expectations and desire to build a diverse Community of adopters and contributors. 

Since every Project contributed to the Foundation comes into an Incubating stage, a comprehensive set of criteria to review to evaluate contribution fitness is the Incubation checklist.  Contributors are encouraged to evaluate the checklist and ensure they are willing to achieve those criteria before, during and after contribution.

For Projects initiated by FINOS Members, there’s the opportunity to carry out a pre-incubation so called Formation stage, where the FINOS team and Members can support the contributor to socialize, gauge interest and ready the project for open sourcing.

Step 1 (optional but recommended): Gauge Community interest 

You are encouraged to email directly to the Community at community@finos.org (subscribe here) to outline your contribution idea and gauge interest or you can reach you directly to the FINOS team at help@finos.org. Note that while everyone is welcome to contribute to existing projects, only FINOS Members can propose new projects. If you are not a Member this step is particularly important to identify a Member who could be a sponsor for your project.

Step 2: Submit a contribution proposal

Draft a proposal to be reviewed by the FINOS team of the program you've chosen. Your proposal should include the following headings:

  1. Business problem: the business problem the contribution solves.

  2. Proposed solution: how the proposed contribution solves that business problem. For software projects, include a detailed description of the software and it's functionality.

  3. Current state: a summary of the contribution's history and status. Include information about the contribution's maturity and roadmap.

  4. Existing materials: links to and descriptions of any existing project materials (e.g. GitHub repositories). If any materials are currently private, please describe them in detail. The Foundation will reach out about providing access to FINOS and the program PMC for evaluation.

  5. Development team: current contributors, including full name, affiliation, work email address, and GitHub.com username where available.

  6. Contributor commitment: describe the resources you'll commit to supporting the contribution should it be accepted by the Foundation. This might include developer time (in FTEs), marketing support, Foundation membership, etc.

You can Submit your proposal based on this template, which will create a new issue on the FINOS Github Community (a free Github account is required). 

To review previous contribution proposals (to see examples, or to see if someone has contributed something similar, etc) you can search our Github contribution issues history and the (now deprecated) Contribution Jira board

Compliance review & IP transition

Once a contribution is raised, the Foundation will perform an audit to ensure the contribution is consistent with the FINOS contribution compliance requirements. In addition to having contributor agreements for each contributor (see tooltip), the main steps are:

  • Transferring the project trademark to FINOS, or selecting a new name for the FINOS project that does not conflict with any existing marks, so that FINOS can enforce the project's rights consistent with our Trademark Guidelines.

  • Compliance with third-party licenses and the FINOS acceptable Apache-compatible license policy.

  • Compliance with FINOS notice requirements for IP notices, contributor attribution, etc - this can happen right after the contribution (see incubating criteria)

Step 3: FINOS Approval

Once legal and IP review is complete, the FINOS team will review the proposal and work with the Governing Board where appropriate to make a decision on approving the project. 

The FINOS team will review your proposal for alignment with the scope and objectives of the Foundation, viability, perceived interest within the FINOS community. The FINOS may contact the submitter for more information during its evaluation, and will typically be providing constant updates on the progress of the approval process.

Step 4: Transfer and Review of Contribution Materials

Following contribution approval, the FINOS infrastructure team will work with the contributing organization to transfer existing code and other materials to the project's collaboration infrastructure (e.g. its GitHub repository, project web site, and/or wiki space) and set for permissions for the initial list of maintainers. This can happen by giving access to an existing DVCS repository to the FINOS team or Sending the FINOS team an archive containing the code to be contributed. See Code Transfer options.

It's during this step as well that code validation and scanning of the code base with be performed, any build processes set up and configured, and the various components of the FINOS Open Developer Platform (ODP) configured and set up for the project, at which point the rest of the Foundation's infrastructure will be available to the project contributors moving forward to use to develop, test and release the project.

Member Benefit

FINOS members are entitled to a pre-contribution assessment performed by FINOS to help evaluate readiness and identify any changes needed to a code base, licensing, etc. to be ready for contribution.

Project Lifecycle

In order to facilitate the creation of high quality, secure and compliant open standards and source code, the Foundation has adopted the FINOS Project Lifecycle described below.

The lifecycle states provide a high-level, "at a glance" measure of the maturity of the given activity's work products, and are intended to help potential consumers and collaborators quickly determine where the community's activity is currently focused.

The links below describe the FINOS Project Lifecycle in relation to Incubating, Active and Archived project states.


Can't find the right program?

If none of the existing programs look suitable for your project, you can contact us at help@finos.org

You may consider /wiki/spaces/FINOS/pages/90472616. However, only FINOS members can propose new programs and approved by the FINOS board (a process that can be quite lengthy).

Step 5: Contribution Announcements

Once the transfer and review is complete, it's time to announce the contribution and garner attention and additional contribution from our the FINOS community. In order to do so:

  • We encourage project leads to email announce@finos.org - see a couple of good examples or use the template below and don't be shy!

    Subject: New Project announcement: <insert Project Name> now Open Source under the <insert Program Name> Program
    
    Body:
    
    Dear FINOS Community,
    
    I am excited to announce that <insert Project Name> was successfully contributed to the <insert Program Name> and it's now available a FINOS hosted project at <insert Github URL>.
    
    <insert brief project description and example use cases>
    
    The most current release is <insert release version>, available for download at <insert download URL or dependency coordinates for different build systems>. Documentation is available at <insert doc site URL> and you can reach out to the project team at <insert email list, chat URL, etc>.
    
    Your feedback, issues, and contributions are more than welcome. See <link to contribution information, e.g. CONTRIBUTING.md> for more information on how to contribute and here's a few area where we could use help <insert URL of issues tagged with "good first issue" or "help wanted"> 
    
    
    Thanks to the <insert Program Name> PMC and to the FINOS Community for a warm welcome!
    
    <insert contributor name(s)>
  • We welcome blog post on finos.org/blog - you can contact our Director of Community to propose an article
  • Social media support - you can reach out to marketing@finos.org to ask for our support in promoting the contribution
  • For substantial contributions, especially of those with multiple contributing orgs, FINOS may choose to support contribution announcement with a press release. Contact press@finos.org if you think a press release is warranted. 

Have questions?

If you'd like help, don't hesitate to reach out by email to help@finos.org or ask the wider community with a note to community@finos.org.