Incubation Process - R1

Inspired by Apache, via Globus

Initial Working Document

As of February 2009 the process as documented here is being used by the IWG to bring outstanding candidates, proposals and contributions into official JASIG status.

  • Projects started from scratch in Jasig world are handled the same as other incubating projects.
  • Portlets are also handled as regular incubating projects.

Outstanding issues

  • Organization and clean up of current Jasig svn repository
  • What happens to the proposal artifacts if incubation is terminated?
  • What about unsponsored contributions?

Overview

  • Proposals for incubation are submitted and tracked via jira. 
  • The IWG reviews incoming proposals and accepts or declines each incubation request. 
  • IWG works with the Project Lead to meet criteria to exit incubation as a Jasig Sponsored project.
  • IWG reviews incubating projects quarterly and determines whether to recommend the project for sponsorship based on exit-criteria, continue incubation or terminate incubation.

Click the thumbnail to see a graph of the incubation process flow.

Nomenclature

Sponsored Project

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

Incubation Process

The Jasig Incubation Process is holistically the activities and mechanism whereby open source software projects are proposed, incubated, evaluated, progressed, and become full-fledged Jasig 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

Proposal

Proposal submitted to IWG containing basic information specified below.  IWG will determine whether the candidate will proceed to Incubating Project, Unsponsored Contribution, or to Incubation Declined.  The Proposal may be for a new project to be developed under the auspices of JASIG or an existing project seeking Jasig sponsorship

Incubating Project

Software to be incubated, progressing through Incubated Project status and ideally emerging as a fully-fledged Sponsored Project

Project Lead

Individual making to incubation request.  The IWG will work with this person to complete the tasks to exit incubation and become a Sponsored Project.

Mentor

The Mentor is a particular person assigned by the Incubation Working Group to shepherd a candidate project through incubation.  Initially the members of the IWG will perform the mentor role.  In the long term when the incubation process matures mentors will be recruited from the Jasig community.

Board

The Jasig Board leads Jasig, 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.

Need to document use of svn repository WRT incubation

The Jasig Incubation Working Group (IWG)

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

The Jasig 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 Jasig guidelines
  • assigning a Project Mentor, a member of the Jasig 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
  • recommending unsponsorship of projects
  • annual review of Unsponsored Contributions

Incubation Process

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

1. Proposal Submitted

A Candidate submission for Incubation, or Non-Project Specific Contrib is proposed to the Incubation WG via the creation of a jira issue.  See jira-use.  The jira may be accompanied by a proposal sent to incubation@ja-sig.org which contains basic information, described below.  A Candidate submission for Project Specific Contribution is proposed directly to the relevant Project Steering Committee.

Information to be submitted with Proposal

Description

New Project

Existing Project

Unsponsored
Contribution

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 if available

(question)

(tick)

(tick)

An overview of the aims of the project

(tick)

(tick)

(tick)

A technology overview if known

(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 Jasig

(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 Liaison (Jasig Board Member, Member of an existing Project Steering Committee, a Jasig Institutional Representative) who recommends the incubation of this project to Jasig

(tick)

 

 

(tick) Required
(question) If known

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

2. Review of Submission

  • Proposals for new projects are accepted if all required information is provided. The IWG or Jasig Board may veto a proposal only if the project does not match with the Jasig mission.
  • Proposals for Incubation of existing projects are reviewed by the IWG, which discusses the project and votes on its acceptability. An affirmative IWG vote qualifies project as incubated.
  • Contributions to an existing project are handled by the steering committee of the project.   The IWG may decide that a proposal is more appropriate as an unsponsored contribution.
  • Portlets are treated the same as other incubating projects.

3. Acceptance as a Project

Once a project has been accepted for incubation, it is eligible for use of the following Jasig resources:

  1. SVN: It is expected that new portlet projects will begin in portlets section of SVN, while other new projects will begin in a new project area under the root Jasig SVN.  (The Subversion Access page lists current SVN access details, and the How to Manage Groups page describes how to arrange for access).
  2. JIRA: Each project receives its own JIRA project.
  3. WIKI: Each project receives its own WIKI space on the Jasig 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 an incubating project under the auspices of Jasig.
  2. The IWG nominates a Mentor for the project, typically a Jasig 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).  Initially the mentors will be the assigned member of the IWG.
  3. The IWG assists the incubating project in the initial start-up to use the Jasig resources described above. These resources should be set up in Jasig infrastructure unless IWG decides otherwise.  For the first wave of incubating projects, members of the IWG will create resources (svn, jira, wiki etc.) and access as required.
  4. The IWG assists the incubating 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 Jasig).
  2. Display the Jasig logo to indicate affiliation.
  3. Use Jasig 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 Jasig

Unsponsored Contributions may indicate that hosting is provided by Jasig , but no other endorsement is implied.

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 Jasig licensing policy.

  • All code properly licensed.  See Jasig Licensing Policyand Implementing the Licensing Policyfor details.
  • 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.  The Incubation Group will check project name against US patent and trademark. Descriptive names such as Calendar Portlet do not need to be checked.  Following is the link for doing a trademark search with the US Patent and Trademark Office: http://www.uspto.gov/trademarks/index.jsp

Pending the Jasig 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. Minimal requirement is a project lead confirmed and at least 1 other committer from another organization.
  • 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 Jasig 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 Jasig 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.
  • Jasig voting practiceshave 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. Jasig 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 Jasig community. The incubated project may engage on a technical level by integrating with existing Jasig projects.  It is also desirable for the prospective project to have been presented / discussed at the Jasig Unconference or annual conference.

Alignment & Synergy

  • Integration with other Jasig projects where appropriate.
  • Develop synergistic relationship with other Jasig projects wherever possible.

Infrastructure

  • SVN module has been created on Jasig server.
  • The required mailing lists have been used.
  • Issue tracker is being used (JIRA).
  • Roadmap for project is present in Confluence.
  • Project website is current and contains documentation including, at least, instructions for installation and configuration.  Portlets must have a wiki site using the standard template, screen shots and functional documentation.
  • All non-sensitive (i.e. passwords, etc) information in the above tools is publicly accessible.

4. Periodic Review

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

    1. The project will be recommended to the board or steering committee as a fully sponsored Jasig project.
    2. The project will remain in Incubation.
    3. The project will be asked to become an Unsponsored Contribution due to lack of viable community.
    4. The project will be asked to retire due to lack of progress. or the project discontinues its association with Jasig (by self-sponsoring or migrating elsewhere).

5. Promotion to full-fledged product

The project may be promoted to a fully sponsored Jasig 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 Jasig or the Project Steering Committee may terminate sponsorship according to the following rules:

  • The IWG may vote to recommend sponsorship termination to the Jasig 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.

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
  • Incubation declined - Not appropriate for Jasig incubation
  • Incubating project - Project being prepared to become Jasig sponsored project
  • Incubation terminiated - Incubation process ended
  • Unsponsored contribution - Contribution not sponsored by Jasig. Contact owner for information
  • Retired contribution - contribution no longer relevent, active or owned

    We need another jira workflow for a request to retire a sponsored project.  This workflow would include the additional status:

    • Retired project - former Jasig project no longer active (e.g. Hypercontent)
  1. Receive jira request for incubation / sponsorship for Jasig 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
      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. Proposal requesting incubation
      1. IWG accept into incubation Jira status change s to Incubating Project follow steps in the incubation process.
      2. The proposal is declined and Jira issue closed with status Incubation Terminated.
      3. If work stops or project is not viable the project may be stopped and Jira issue closed with status Incubation is terminated  or there may be artifacts to remain as unsponsored contributions.
    2. Request for unsponsored contribution
      1. IWG decides to make component available as unsponsored contribution: Jira issue resolved with status Unsponsored Contribution and IWG performs annual verification of contact.
      2. IWG decides contribution is not appropriate for Jasig. Jira issue closed with status Incubation Declined .
      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 .
    3. Request for Project to become retired
    4. Quarterly assessment of each Incubating Project### Project is active and progressing - no status change
      1. Project ready for sponsorship according to IWG member vote.  IWG recommend approval by board or Steering committee as appropriate.  If accepted Jira issue closed with status Sponsored Project.
      2. Project is progress not satisfactory -  Jira issue closed with status Incubation Terminated.
      3. Project is progress not satisfactory but worthwhile artifacts should be retained as unsponsored contribution -  Jira issue resolved with status Unsponsored Contribution.

Click image to see jira workflow diagram:
Click image to see workflow transition details: \