Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
6 contributors

Users who have contributed to this file

@MylesBorins @tobie @keywordnew @mhdawson @ljharb @mkdolan
192 lines (120 sloc) 13.4 KB

I. Overview

This governance policy describes how an open source project can formally join the OpenJS Foundation, hereinafter referred to as the "Foundation", via the Project Proposal Process. It describes the Stages a project may be admitted under and what the criteria and expectations are for a given stage, as well as the acceptance criteria for a project to move from one stage to another. It also describes the Annual Review Process through which those changes will be evaluated and made.

Project progression - movement from one stage to another - allows projects to participate at the level that is most appropriate for them given where they are in their lifecycle. Regardless of stage, all Foundation projects benefit from a deepened alignment with existing projects, and access to mentorship, support, and foundation resources such as the travel fund.

II. Project Proposal Process

Introduction

This governance policy sets forth the proposal process for projects to be accepted into the Foundation. The process is the same for both existing projects which seek to move into the Foundation, and new projects to be formed within the Foundation.

Project Proposal Requirements

New projects should express interest to join the OpenJS Foundation via an email to new-projects@lists.openjsf.org with a filled out Project Application Template. The initial application will have a silent period for internal only discussion. If your application is denied during this phase you will be notified privately. If there are no objections to the application, projects will given an incubation status and begin the on-boarding process. Note the incubation status is temporary as we determine if the project is a good fit. At any time during the incubation process a project can withdraw either voluntarily or at the request of the CPC.

Application Phases

  1. Initial email sent to new-projects@lists.openjsf.org with filled out Project Application Template.
  2. Silent period. Internal only discussion.
  3. Initial acceptance as Incubating Project.
  4. Project goes through process of adhering to on-boarding checklist.
  5. Project presents to CPC for final acceptance via 2/3 supermajority vote and appropriate initial stage is determined.

Onboarding Checklist

This is an informational checklist to help projects onboard into the OpenJS Foundation - tasks we will complete together after your project has been accepted into the incubation process. If you have any questions or need help, the OpenJS Foundation CPC is available to assist.

  • Adopt the OpenJS Foundation Code of Conduct
  • Update project CoC reporting methods to include OpenJS Foundation escalation path
  • Transfer official domains to OpenJS Foundation
  • Identify and document other core project infrastructure
  • If choosing to use a Contributor License Agreement (CLA) or Developer Certificate of Origin (DCO), make selection and implement appropriate tool
  • Add or Update Governance.md document (required for Impact stage)
  • Confirm required files in place (CODE_OF_CONDUCT.md, LICENSE.md)
  • Project Charter is published on website or github
  • Update legal copyright notice on project website and github
  • Add OpenJS Foundation logo to project website
  • Add Project logo to OpenJS Foundation website; update PROJECTS.md file
  • Transfer logomark to the OpenJS Foundation
  • If project is using crowdfunding platforms, add disclaimer to platforms
  • Identify individuals from the project to join the CPC
  • Document project and foundation contacts for:
    • marketing & social media
    • infrastructure
    • legal/governance help

III. Stages - Definitions & Expectations

Every Foundation project has an associated maturity level. Proposed Foundation projects should state their preferred maturity level. Projects of all maturities have access to Foundation resources.

All Foundation projects may attend CPC meetings and contribute work regardless of their stage.

At Large Projects

Definition

At Large projects are projects which the CPC believes are, or have the potential to be, important to the ecosystem of Top-Level Projects or the JS ecosystem as a whole. They may be early-stage projects just getting started, or they may be long-established projects with minimal resource needs. The At Large stage provides a beneficial, neutral home for these projects in order to foster collaborative development and provide a path to deeper alignment with other Foundation projects via the graduation process.

Examples

  1. New projects that are designed to extend one or more Foundation projects with functionality or interoperability libraries.
  2. Independent projects that fit the Foundation mission and provide potential for a novel approach to existing functional areas (or are an attempt to meet an unfulfilled need).
  3. Projects commissioned or sanctioned by the Foundation.
  4. Any project that realistically intends to join the Foundation Incubation or Top Level Stages in the future and wishes to lay the foundations for that transition.

Expectations

End users should evaluate At Large projects with care, as this stage does not set requirements for community size, governance, or production readiness. At Large projects will receive minimal marketing support from the Foundation. Projects will be reviewed on an annual basis; they may also request a status review by submitting a report to the CPC.

Acceptance Criteria

To be considered for the At Large Stage, the project must meet the following requirements:

  • 2 CPC sponsors to champion the project & provide mentorship as needed
  • A presentation to at the meeting of the CPC
  • Adherence to the Foundation IP Policy
  • Upon acceptance, At Large projects must list their status prominently on website/readme

Growth Stage

Definition

The Growth Stage is for projects that are interested in reaching the Impact Stage, and have identified a growth plan for doing so. Growth Stage projects will receive mentorship from the CPC and are expected to actively develop their community of contributors, governance, project documentation, and other variables identified in the growth plan that factor in to broad success and adoption.

In order to support their active development, projects in the Growth stage have a higher level of access to marketing and other resources, which will be agreed upon and reviewed on a yearly basis. A project's progress toward its growth plan goals will be reviewed on a yearly basis, and the CPC may ask the project to move to the At Large stage if progress on the plan drops off or stalls.

Examples

  1. Projects that are on their way or very likely to become Top Level Projects.
  2. Projects that have developed new growth targets or other community metrics for success.
  3. Projects that are looking to create a lifecycle plan (maintainership succession, contributor programs, version planning, etc.)
  4. Projects that need more active support from the Foundation in the form of marketing or CPC mentorship in order to reach their goals.

Expectations

Projects in the Growth Stage are generally expected to move out of the Growth stage within two years. Depending on their growth plans, projects may cycle through At Large, Growth, or Impact stage as needed.

Acceptance Criteria

To be considered for Growth Stage, the project must meet the At Large requirements as well as the following:

  • Development of a growth plan, to be done in conjunction with their project mentor(s) at the CPC.
  • Document that it is being used successfully in production by at least two independent end users which, in the CPC’s judgement, are of adequate quality and scope.
  • Demonstrate a substantial ongoing flow of commits and merged contributions.
  • Demonstrate that the current level of community participation is sufficient to meet the goals outlined in the growth plan.
  • Since these metrics can vary significantly depending on the type, scope and size of a project, the CPC has final judgement over the level of activity that is adequate to meet these criteria.
  • Receive a two-thirds supermajority vote of the CPC to move to Growth Stage.

Impact Stage

Definition

The Impact Stage is for projects that have reached their growth goals and are now on a sustaining cycle of development, maintenance, and long-term support. Impact Stage projects are used commonly in enterprise production environments and have large, well-established project communities.

Examples

  1. Projects that have publicly documented release cycles and plans for "Long Term Support" (LTS).
  2. Projects that have themselves become platforms for other projects.
  3. Projects that are able to attract a healthy number of committers on the basis of its production usefulness (not simply 'developer popularity').
  4. Projects that have several, high-profile or well known end-user implementations.

Expectations

Impact Stage projects are expected to participate actively in CPC proceedings, and as such have a binding vote on CPC matters requiring a formal vote, such as the election of a CPC Director. They receive ongoing financial and marketing support from the Foundation, and are expected to cross promote the foundation along with their activities.

Acceptance Criteria

To graduate from At Large or Growth status, or for a new project to join as an Impact project, a project must meet the Growth stage criteria plus:

  • Have a defined governing body of at least 5 or more members (owners and core maintainers), of which no more than 1/3 is affiliated with the same employer. In the case there are 5 governing members, 2 may be from the same employer.
  • Have a documented and publicly accessible description of the project's governance, decision-making, and release processes.
  • Have a healthy number of committers from at least two organizations. A committer is defined as someone with the commit bit; i.e., someone who can accept contributions to some or all of the project.
  • Adopt the Foundation Code of Conduct.
  • Explicitly define a project governance and committer process. This is preferably laid out in a GOVERNANCE.md file and references a CONTRIBUTING.md and OWNERS.md file showing the current and emeritus committers.
  • Have a public list of project adopters for at least the primary repo (e.g., ADOPTERS.md or logos on the project website).
  • Other metrics as defined by the applying Project during the application process in cooperation with the CPC.
  • Receive a supermajority vote from the CPC to move to Impact stage. Projects can move directly from At Large to Impact, if they can demonstrate sufficient maturity and have met all requirements.

Emeritus Stage

Definition

Emeritus projects are projects which the maintainers feel have reached or are nearing end-of-life. Emeritus projects have contributed to the ecosystem, but are not necessarily recommended for modern development as there may be more actively maintained choices. The Foundation appreciates the contributions of these projects and their communities, and the role they have played in moving the ecosystem forward.

Examples

  1. Projects that are "complete" by the maintainers' standards.
  2. Projects that do not plan to release major versions in the future.

Expectations

Projects in this stage are not in active development. Their maintainers may infrequently monitor their repositories, and may only push updates to address security issues, if at all. Emeritus projects should clearly state their status and what any user or contributor should expect in terms of response or support. If there is an alternative project the maintainers recommend, it should be listed as well. The foundation will continue to hold the IP and any trademarks and domains, but the project does not draw on foundation resources.

Acceptance Criteria

Projects may be granted Emeritus status via a 2/3 vote from the CPC and with approval from project ownership. In cases where there is a lack of project ownership, only a 2/3 vote from the CPC is required.

Incubating

Definition

Incubating projects are projects that are in the process of completing their on-boarding checklist to join the foundation. Projects in this phase may be looking to join the foundation as At-Large, Growth, or Impact Stage. Members of incubating projects are invited to join Cross Project Council meetings as a guest, please refer to the CPC Charter for details on how guests may participate in the meetings.

Examples

  1. Projects that have been accepted into incubation process after silent period.

Expectations

It is expected that incubating project will make an active effort to work through the on-boarding process in a reasonable timeframe. They will be offered foundation support to help do so.

Acceptance Criteria

  1. consensus within private mailing list to move into incubation process

Graduation Criteria

  1. Completion of the on-boarding checklist
  2. 2/3 vote from the CPC to accept project
  3. Completion of the entrance criteria for desired stage

IV. Annual Review Process

The CPC shall develop an annual review process to determine whether projects are in the stage that accurately reflects their needs and goals.

You can’t perform that action at this time.