You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Version 1.0 created by Bill Snow and Scott Nicholas, adopted in ONOS board meeting held 17 June 2016.

ONOS Project Lifecycle

ONOS Project’s technical projects (“Projects”) shall consist of individual projects (each a “Project”), and each Project may have one or more modules (each a “Module”).  The creation, maintenance, promotion and archiving of Projects shall follow a lifecycle described in this Project Lifecycle document.  

The TST shall create, align and coordinate Projects and Modules.  The TST shall have the power treorganize Projects and Modules after sufficient review and discussion with the Projects and community involved.  Subject tthe foregoing, individual Projects can organize Modules within each such Project. 

The TST shall encourage new Projects and innovation in the technical community. New Projects enter the ONOS technical community through a proposal (a “Proposal”) tthe TST and if approved, are granted Incubation-state status.  Any voting member of the ONOS technical community may submit a Proposal tthe TST.  

Any TST member may request that the TST tconsider promoting a Project, and, with respect tan Incubation-state project, any voting member of that Project may request the TST consider promoting said Project. 

Any TST member may request that a Project be considered for promotion tCore or transitioned tArchived-state.  

Projects shall change state following TST reviews. Projects typically change states independently from each other, but can cooperate closely and leverage each other’s results. Projects graduate from Proposal-state, through Incubation-state and Mature-state tCore-state. Archived–state is a Project state reserved for those Projects nlonger being actively developed or used by the community.

Project state

Description

Proposal

Project does not formally exist yet, may not have real resources (yet), but is being worked on by the community tsubmit a formal proposal tthe TST.

Incubation

Project has been approved by the TST, has resources, but is recognized tbe nascent.

Mature

Project is fully functioning and stable, has achieved successful releases, but is not a required component of the ONOS Core.

Core

Project is a required component of the ONOS Core.

Archived

Project has been recognized as nlonger being actively used or developed. This could be for a variety of reasons, e.g. project successfully accomplished its goals but is nlonger used, project failed, etc., and has been archived as it's nlonger a going concern.

Project state transitions

From State

TState

Review

<null>

Proposal

n/a

Proposal

Incubation

Creation Review

Incubation

  • Mature; or
  • Core
  • Graduation Review; or 
  • Graduation and Core Review, in parallel

Mature

Core

Core Review

{Proposal, Incubation, Mature, Core}

Archived

Archive Review

Reviews

Creation Review

  •  Proposal posted for two weeks, evaluated on metrics of:
    • Name is okay (e.g. no use of a trademark)
    •  Project contact name and email
    •  Description is complete
    •  Scope and project plan is well defined
    •  Resources are committed
    •  Initial Committers Reviewers named
    •  Contributors have been identified
    •  Meets the ONOS Project’s policies (e.g. IP Policy)
    •  Proposal has been socialized with potentially interested or affected existing Projects
    •  Proposal email has been sent to the TST mailing list
    •  Review by TST: Confirm that the proposal is complete and the above listed requirements have been sufficiently met.

Graduation Review

  •  It is intended that threshold for having projects graduated to Mature-state will be lower and the process streamlined relative to having projects graduated to Core-state.
  •  Graduation proposal posted for two weeks:
  •  Module owner named
  •  The Project demonstrates stable output (code base, documents, tests)
  •  Active community working on the Project
  •  History of successful, consistent releases in accordance with the release process
  •  TST review 
    •   Working and stable code base exists
    •   Active community exists
    •   Project has demonstrated a history of releases following the release process and cadence
    •   Confirmed acceptance and successful integration of contributions/code tpartner/upstream projects. 
    •   Testing/integration environment defined and mature, tests and integration run successfully
    •   Detailed documentation available documenting the code

Core Review

  • Core-state proposal posted for two weeks

  • The requirements for Graduation review are also met
  •  Project is shown tbe viable, necessary or broadly useful module, subsystem or component of the ONOS Project
  •  Project build and test scripts have been created to work with the rest of ONOS Core
  •  Project shown to not break continuous development and integration environment 
  •  TST review metrics
  •  Core review assesses projects based on the metrics of the graduation review and the necessity of the project relative to the codebase and user requirements. 
  •  In addition the project is required to have confirmed longevity (e.g. the project has been active for at least one year, participates in release activities, and has release plans outlined to stay active for at least another year). 

Termination Review

  •  Termination proposal posted for two weeks
  •  States reason for project termination being sought
    •   Termination proposal to include acceptable triggers for termination
    •   (e.g. protracted idleness, or request by the project)
  •  Estimates impact on other projects and how to mitigate
  •  Impact and possible breakage to APIs or builds
  •  Location identified and links created for archived project
  •  If Archival is not approved, the Project remains in its pre-reviewed state
  • No labels