Skip to the content.

How to Contribute

Following are the way of contributions and its process for the OCP community.

Technical Contributions

OCP members are welcome to contribute in any or all of the following development processes. The ways in which the members can contribute are explained in detail in the following sub sections.

  1. Development

  2. Reviews

  3. Testing

  4. Bug Fixing

  5. Presentation and demos

  6. Documentation

Software Contribution Guidelines (per our Governance Document)

The software project accepts contributions via GitHub pull requests. The following section outlines the process for merging contributions to the source code and the spec.

Issues

Issues are used as the primary method for tracking anything to do with the source code and specification repository.

Issue Types

For the source code contributions, the issue types could be any of the following:

Specification issue types are listed below:

  1. Discussion: These are support or functionality inquiries that we want to have a record of for future reference. Depending on the discussion, these can turn into “Spec Change” issues.

  2. Proposal: Used for items that propose new ideas or functionality that require a larger discussion. This allows for feedback from the community before a specification change is actually written. All issues that are proposals should both have a label and an issue title of “Proposal: [the rest of the title].” A proposal can become a “Spec Change” and does not require a milestone.

  3. Spec Change: These track specific spec changes and ideas until they are complete. They can evolve from “Proposal” and “Discussion” items or can be submitted individually depending on the size. Each spec change should be placed into a milestone.

  4. Software Community & Membership

The Software Project requires no admission processes, contracts, or membership fees. Any individual or organization who are OCP members, can use and contribute to a Software Project. We welcome any contributions that lead to the success of the project - including software development, documentation, testing, delivery and advocacy.

Software Compliance Program

The Software Project may also provide a compliance or branding program for individuals or organizations to register as participants, or to register products, board support packages (BSPs), or software layers as Project Compatible. Any compliance or branding programs must be approved by the OCP Foundation.

The compliance or branding program is intended to promote the use and adoption of the open sourced software, regardless of an individual or corporate affiliation with OCP.

Participants in the compliance program, at the discretion of the Foundation and with their permission, may be listed on the OCP Marketplace, OCP Integrated solutions and any OCP portal pages or on the OCP Project GitHub pages.

Software Project Management

The Software Project is developed and designed using a collaborative effort by an open community of professionals and volunteers. The success of the Software Project is based on collaboration and governance based on meritocracy.

Roles and Responsibilities

PLs (see Sec 1- Volunteer Leaders) are responsible for the success of the Software Project and to align with the approved charter. The PL is a volunteer position, initially appointed by OCP and approved by the IC. After initial appointment, the PL position will be elected in accordance with OCP Governance. The PLs will be accountable for the following:

Contributors: Contributors are people who have submitted work to the Software Project. Contributors include anyone in the technical community that contributes code, documentation or other technical artifacts to the Software Project. In addition to their actions as users, Contributors may also find themselves doing one or more of the following:

Committers: Committers are contributors who have earned the ability to modify (“commit”) source code, documentation or other technical artifacts in a Software Project’s repository. A contributor may become a committer by a majority approval of the existing committers. A committer may be also removed by a majority approval of the other existing committers.

Maintainers: There are two types of maintainers, source code maintainers and specification maintainers.

Editor: Editors are required for specification management only and are responsible for ensuring that the contents of the document accurately reflect the decisions that have been made by the project, and that the specification adheres to formatting and content guidelines. project will designate an Editor.

Participants: “Participants” are required for specification management only and are those that have made contributions to the Working Group or to the specification repository.

The Incubation Committee Representative (ICR): The ICR is an ambassador to other OCP Project Communities. They will work with the PLs and other ICRs to ensure that the Software Project is fitting within the OCP ecosystem.

(OPTIONAL) A Technical Steering Committee (TSC) may be formed to provide leadership and resolve technical differences that may arise from time to time. The decision to create or dissolve a TSC must be approved by the OCP Foundation.

Branding

In order to promote the Software Project, both within the community and externally, branding is needed. Each individual Software Project will undergo a dedicated branding exercise, with collaboration between the OCP Foundation and Project Lead(s) and TSC (if applicable), in order to determine the most appropriate brand framework from which to operate This may include “fitting” within an existing brand scheme (such as OCP), or as a stand-alone brand. “Branding” of a Software Project may include, but not be limited to:

Administrative Support

The OCP Foundation will provide administrative functions that are vital for the Software Project, including finance, advocacy, outreach, infrastructure, and community management. It will periodically assign tasks to the PLs or other members for assistance in such duties. The OCP Foundation will conduct regular conference calls and Engineering Workshops to facilitate these functions.

Licensing

Participants and/or Code Committers acknowledge that all the licensing and copyright information is clearly defined in every source code or documentation file that is being contributed and the source code license matches with the actual licensing information that the Software Project dictates.

All code contributions to the Software Project are subject but not limited to the following: