Incubation Process - old

Old Document

See latest Incubation Process document for up to date information

Inspired by Apache, via Globus

Process Flow

Click the thumbnail to see process flow for incubation flow.

Jira Implementation Details

Click image to see workflow diagram:

Click image to see workflow transition details:

Nomenclature

Sponsored Project

Official JASIG project governed by an elected steering committee and supported by a community of users and developers

Incubation Process

The JA-SIG Incubation Process is holistically the activities and mechanism whereby open source software projects are proposed, incubated, evaluated, progressed, and become full-fledged JA-SIG sponsored projects.  The incubation process may also be applied to new software contributions related to existing sponsored projects.  Software that relates to an existing project is transferred to the existing project steering committee for incubation and governance.

Incubation WG

The Incubation Working Group (Incubation WG) are the people who oversee this process. (Also known as IWG).  The IWG is also responsible for periodic review of Unsponsored Contributions.
SusanBramhall to be initial chair of IWG

Candidate Proposal

Proposal submitted to IWG containing basic information specified below.  IWG will determine whether the candidate will proceed to Proposed Project (Preincubation), Incubating Project, Unsponsored Contribution, or to an existing project steering committee for further consideration.  A Candidate Proposal can also be declined by the IWG and

Proposed Project

A proposal for a new project to be developed under the auspices of JASIG.

PreIncubation

Preincubation is the status of a Proposed Project until it is either accepted for Incubation by the IWG or is terminated.

Incubating Project

Software to be incubated, progressing from Candidate Project status through Incubated Project status and ideally emerging as a fully-fledged Sponsored Project. A Project may also have a Preincubation status prior to Candidate status.

Mentor

The Mentor is a particular person assigned by the Incubation Working Group to shepherd a candidate project through incubation

Board

The JA-SIG Board leads JA-SIG, overseeing and supporting the Working Group and the process they execute

Unsponsored Contribution

In some cases, software may be contributed without a sponsoring project. Such a contribution may exist indefinitely without becoming a Sponsored Project. Periodic review of unsponsored contributions is the responsibility of the Incubation WG.  Software related to a Sponsored Project also may end up in as an Unsponsored Contribution when the Project steering committee decides it is not a viable component.

Sandbox

An area in svn and wiki space where project related experimental work is developed. The IWG does not provide oversight or governance to the sandbox area.

The JA-SIG Incubation Working Group (IWG)

The JA-SIG Incubation Working Group will establish and maintain policy and procedures related to the contribution of technical material to JA-SIG.

The JA-SIG Incubation Working Group will oversee the execution of the process through which new projects move from a Candidate Project to an accepted Incubated Project, through review, to a fully sponsored project. The IWG is responsible for

  • assisting proposed projects in conforming to JA-SIG guidelines
  • assigning a Project Mentor, a member of the community assigned to help the Incubated Project reach acceptance
  • evaluating progress of the Incubated Project on a regular quarterly basis and recommending escalation to a sponsored project, continued support, or retirement, according to established criteria
  • preincubating projects
  • recommending unsponsorship of projects
  • periodic review of Unsponsored Contributions

The JA-SIG Incubation Working Group will delegate the oversight of the execution of the processes related to project specific contrib and sandbox to the relevant project Steering Committees.

Jira

Jira is used to track the staus of incubation requests, contributions.
The following jira statuses are defined:

  • Pending Review - A proposal request has been submitted for consideration by IWG
  • Proposal declined - Not appropriate for Jasig incubation
  • Preincubation - New project getting started under auspices of Jasig
  • Incubating project - Project being prepared to become Jasig sponsored project
  • Incubation terminiated - Incubation process ended
  • Preincubation terminated - pre-incubation process ended
  • Insponsored contribution - Contribution not sponsored by Jasig. Contact owner for information
  • Retired contribution - contribution no longer relevent, active or owned
  • Retired project - former Jasig project no longer active (e.g. Hypercontent)
  1. Receive jira request for incubation / sponsorship for JA-SIG projects, component or contribution.
    1. Jira issue should indicate whether request is for
      1. incubation as new project from existing work
      2. incubation as new project from scratch (proposed project, pre-incubation request)
      3. incubation as component of existing project (such as a portlet)
      4. unsponsored contribution
    2. Initial Jira status is Pending Review .
  2. Review and track status of requests
    1. New project requesting incubation
      1. IWG accept into incubation Jira status change s to Incubating Project follow steps in the incubation process.
      2. Eventually the project is offically sponsored Jira issue closed with status Sponsored Project
      3. The proposal is declined and Jira issue closed with status Incubation Terminated.
    2. New pre-incubation project
      1. IWG accept into preincubation Jira status changes to Accepted for Pre-Incubation
      2. IWG review quarterly to make sure progress and activity continue
      3. Eventually the project may apply to be offically sponsored. IWG will vote to accept for incubation and change Jira issue status to Incubating Project . Proceed to New project request.
      4. If work stops or project is not viable the candidate project may be stopped and Jira issue closed with status Preincubation is terminated. Alternatively, there may be artifacts to remain as unsponsored contributions?
    3. If related to existing project
      1. Pass immediately to steering committee which becomes responsible for incubation, adoption etc. Jira issue is resolved (but not closed) with status Transferred to Steering Committee . Steering committee may use jira to continue incubation of component such as portlet.
      2. Steering committee may pass the request back to IWG at any time if component is no longer relevent or appropriate to project. Jira status change s to Pending Review.
      3. IWG decides to retire or decline component. Jira issue closed with status Proposal D eclined or Incubation Terminated .
    4. Request for unsponsored contribution
      1. IWG decides to make component available as unsponsored contribution: Jira issue resolved (but kept open) with status Unsponsored Contribution and IWG performs annual verification of contact.
      2. IWG desides contribution is not appropriate for Jasig. Jira issue closed with status Proposal D eclined .
      3. IWG determines a contribution no longer has a contact person or users willing to act as contact. Jira issue closed with status Retired Contribution .

Process

Process Overview Graph

This process describes how a candidate project or contribution would progress from submission to full acceptance as a JA-SIG Project.

1. Proposal Submitted

A Candidate submission for Preincubation, Incubation, or Non-Project Specific Contrib is proposed to the Incubation WG via a proposal sent to incubation@ja-sig.org which contains basic information, described below. (question) A Candidate submission for Project Specific Contrib is proposed directly to the relevant Project Steering Committee.

Information to be submitted with Proposal

Description

Preincubation

Incubation

Contrib

A proposed name for the project

(tick)

(tick)

(tick)

The short preface for the mailing lists, if this project is accepted (*-dev, *-user, etc); Incubating portlets will use the existing portlet mailing lists

(tick)

(tick)

 

A proposed Project Lead, with contact information

(tick)

(tick)

(tick)

A list of the proposed initial committers for the project

(question)

(tick)

(tick)

An overview of the aims of the project

(tick)

(tick)

(tick)

A technology overview

(question)

(tick)

(tick)

An overview of any current user base or user community

 

(tick)

(tick)

An overview of how the project relates to other parts of JA-SIG

(tick)

(tick)

(tick)

A summary of why the project would enhance and benefit higher education

(tick)

(tick)

(tick)

A pointer to any current information (for example, an existing Web page) for the project

(tick)

(tick)

(tick)

A project sponsor (JA-SIG Board Member, Member of an existing Project Steering Committee, a JA-SIG Institutional Representative)

(tick)

 

 

(tick) Required
(question) If known

The proposal would be expected to be less than 3 pages in length.

2. Review of Submission

  • Preincubation proposals are accepted if all required information is provided. The IWG or JA-SIG Board may veto a proposal only if the project does not match with the JA-SIG mission.
  • Incubation proposals are reviewed by the IWG, which discusses the project and votes on its acceptability. An affirmative IWG vote qualifies project as incubated.
  • Decisions regarding the acceptance of contrib are made by the appropriate Project Steering Committee. If no such committee exists, the IWG reviews the proposal.

3. Acceptance as a Project

Once a project has been accepted for preincubation or incubation, it is eligible for use of the following JA-SIG resources:

  1. SVN: It is expected that new portlet projects will begin in the sandbox area of the JA-SIG SVN and move to the portlets SVN when promoted to sponsored status. Other new projects begin a new project under the JA-SIG SVN.
  2. JIRA: Each project receives its own JIRA project.
  3. WIKI: Each project receives its own WIKI space on the JA-SIG wiki server. Incubating portlets will use the existing portlet space.
  4. Lists: Incubating portlets will use the existing portlet mailing lists while each regular project will have its own mailing list.
  5. Web Presence: Each project receives its own webspace, supporting URLs of the form http://www.ja-sig.org/products/ourproject and http://www.ourproject.org.

Once a project has been accepted for incubation, the following actions take place:

  1. The project officially becomes a candidate project in incubation under the auspices of JA-SIG.
  2. The IWG nominates a Mentor for the project, typically a JA-SIG community stakeholder who will act as a bridge between the IWG and the project (Mentor would also then serve as a member of the IWG).
  3. The IWG assists the candidate project in the initial start-up to use the JA-SIG resources described above. These resources should be set up in JA-SIG infrastructure unless IWG decides otherwise.
  4. The IWG assists the candidate project in performing appropriate licensing, contribution, trademark, and other legal arrangements.

Newly incubated projects then perform the following actions:

  1. Indicate that the project is in incubation (though not yet fully sponsored/supported by JA-SIG).
  2. Display the JA-SIG logo to indicate affiliation.
  3. Use JA-SIG infrastructure for development and collaboration unless an alternate infrastructure is agreed by IWG to be more appropriate.

Note: Releases of projects in incubation are not officially endorsed by JA-SIG

Preincubation and contrib projects may indicate that hosting is provided by JA-SIG, but no other endorsement is implied.

The minimum requirements that a project must meet to exit the state of preincubation are:

  • Project goals are clearly defined.
  • Design documents are public and reasonably stable.
  • Extensive coding on the project core is underway. Proof of concept or skeletal implementations are not sufficient.

The minimum requirements that a project must meet to exit the state of incubation (and should be working on fulfilling as part of the incubation process) are:

Legal

These requirements are dependent on approval of a JA-SIG licensing policy.

  • All code properly licensed.
  • No non-licensed or license-incompatible dependencies in the code base.
  • Software license grant complete.
  • Contributor License Agreements on file (both individual and corporate agreement).
  • Copyright agreement in all source files.
  • Check of project name for trademark issues.  JA-SIG will assist in trademark registration for project name.

Pending the JA-SIG licensing policy, the IWG will accept projects with similar licensing status to existing projects.

Community

  • Demonstrate an active and diverse development community. Preferably the list of original committers will have grown beyond the original set (and institution) in the proposal, but this is not a requirement.
  • Demonstrate that the project has a reasonable expectation for support in the future, for example, if any single contributor leaves the project continued support will exist.
  • The above implies that new committers are admitted according to JA-SIG practices.

Governance

  • A project steering committee has been created to oversee the project, or the project committers and an existing steering commitee agree that an existing steering committee will steer the project.  In the case of portlets a new steering committee is not required.  Initially the JA-SIG uPortal Steering Committee will oversee portlets as well.  Once the process grows too large for that committee the intention is to appropriately group portlets for the process of governance.
  • JA-SIG voting practices have been adopted and are standard practice.
  • The project has weathered and resolved conflicts where they have arisen. Good-natured and well-meaning disagreement of vision, requirements, and implementation are a reality of community source development. JA-SIG desires that incubated projects work through these "growing pains", as the software is developed and additional committers and adopters become involved, before emerging from incubation. Incubation provides an opportunity to face conflict with the assistance of an Incubation Mentor and the support of the Incubation Working Group.
  • Release plans are developed and executed in public by the committers.
  • At least one release has occurred during the Incubation process.
  • Engagement by the incubated community with the larger JA-SIG community. The incubated project may engage on a technical level by integrating with existing JA-SIG projects.  It is also desirable for the prospective project to have been presented / discussed at the JA-SIG Unconference or annual conference.

Alignment & Synergy

  • Integration with other JA-SIG projects where appropriate.
  • Develop synergistic relationship with other JA-SIG projects wherever possible.

Infrastructure

  • SVN module has been created on JA-SIG server.
  • Three required mailing lists have been used.
  • Issue tracker is being used (JIRA).
  • Roadmap for project is present in Confluence.
  • Project website is current.
  • All non-sensitive (i.e. passwords, etc) information in the above tools is publicly accessible.

4. Periodic Review

Projects in preincubation will undergo periodic reviews (at least quarterly) which may have one of five outcomes:

  1. The project will be promoted into Incubation.
  2. The project will remain in Preincubation. If the project's sponsor is no longer affiliated with JA-SIG, a new sponsor must be found or the association with JA-SIG is discontinued.
  3. The project will be asked to hibernate after a period of little activity. (It may move out of hibernation at a later date.)
  4. The project will be asked to retire due to lack of progress
  5. The project discontinues its association with JA-SIG (by self-sponsoring or migrating elsewhere).

Projects in incubation will undergo periodic reviews (at least quarterly) which may have one of five outcomes:

  1. The project will be promoted into a fully sponsored JA-SIG project.
  2. The project will remain in Incubation.
  3. The project will be asked to hibernate after a period of little activity. (It may move out of hibernation at a later date.)
  4. The project will be asked to become contrib due to lack of viable community.
  5. The project will be asked to retire due to lack of progress.

5. Promotion to full-fledged product

The project may be promoted to a fully sponsored JA-SIG project when it meets Legal, governance, community, alignment & synergy and Infrastructure requirements outlined above.  When requirements are met the IWG will recommend to the board that the project be promoted to sponsored status.  Final acceptance of sponsored project must be approved by the board.

In the case of a portlet the decision to promote to full fledged sponsored portlet is made by the uPortal steering committee which will be the governing body for all sponsored portlets.  Board approval is not required for portlets.

6. Termination of Project Sponsorship

Either JA-SIG or the Project Steering Committee may terminate sponsorship according to the following rules:

  • The IWG may vote to recommend sponsorship termination to the JA-SIG Board, which in turn may vote to terminate sponsorship.
  • The Project Steering Committee may vote to terminate sponsorship.
  • Once one of the above in voting procedures is completed, termination is effective at the second scheduled meeting of the Board or Committee that did not execute the vote, or in 90 days, whichever comes first. If the sponsorship termination vote is rescinded, termination is no longer effective.

It is expected that an effort will be made to resolve any issues related to the sponsorship termination prior to the procedures being put in effect.

Summary of Project Categories

Nomenclature

This section uses the nomenclature proposed during the October 22 conference call.
Specifically, a "Preincubation Project" is now a "Project Proposal", and a project proceeding through the incubation process is a "Candidate Project".

Category

Project related Sandbox

Contrib (Non-Project)

Contrib (Project)

Project Proposal

Candidate Project

Can achieve sponsorship?

 

 

 

(tick)

(tick)

Experimental?

(tick)

 

 

 

 

Code exists?

(tick)

(tick)

(tick)

 

(tick)

Relates to existing Sponsored Project?

(tick)

 

(tick)

 

 

"Substantial"?

 

 

 

(tick)

(tick)

Must have owner?

 

(tick)

(tick)

(tick)

(tick)

Governance

Project Steering Committee

IWG

Project Steering Committee

IWG

IWG

Examples

Proof of concept code

IRC Logbot

Portlets, CAS Cleartext Password

OpenRegistry

Cernunnos, Helpdesk App