User Tools

Site Tools



This wiki was just for discussion: For the latest up to date version of the document see the OPNFV project lifecycle web page.

OPNFV Projects

The activities of the Community are organized into projects targeting different areas within the scope of OPNFV including but not limited to; development of upstream code, integration of platform components, support functions to create and maintain the infrastructure and the development and maintenance of the toolchains we use.

Project lifecycle overview

OPNFV defines four maturity levels that each project goes through during its lifecycle. The procedure of moving from one level to the next one is independent from the release process of OPNFV and the pace depends on each individual project. Projects in states "Incubation", "Mature" and "Integration" can participate in releases.

The lifecycle of the projects is depicted on the following diagrams:

Project states

Project state Description
Proposal Project doesn’t really exist yet, may not have real resources, but is proposed and is expected to be created due to needs.
Incubation Project has resources, but is recognized to be nascent.
Mature Project is fully functioning and stable, has achieved successful releases.
Integration Project provides value to and receives interest from a broad audience.
Archived Project has been recognized as dead (could be for a variety of reasons, e.g. project successfully accomplished its goals, project failed, etc.), and has been archived as it's no longer a going concern.

Reviews & Metrics

Project promotion, and demotion, across states can only be done by TSC review and voting. During the reviews the candidate projects are evaluated based on predefined metrics and KPIs. The target numbers may vary for the different levels.

  • Longevity of the project
  • Project follows OPNFV release cadence
  • Requirements have resulted in corresponding implementations
    • Comprehensiveness and maturity of the artifacts (code, test cases, documentation) the project produces including contributions/code to partner/upstream projects where applicable
    • Mature testing/integration success for defined environments (OPNFV and/or partner/upstream projects, which is applicable or both)
  • Community
    • Size and diversity of the active community (number and diversity of people contributing)

Creation review

  • Proposal posted for two weeks:
    • Name of the project is appropriate (no trademark issues etc.); Proposed repository name is all lower-case without any special characters
    • Project contact name and email
    • Description is complete
    • Scope and project plan is well defined
    • Reference of an existing NFV requirement or clear identification of a new requirement
    • Resources committed
    • Contributors identified
    • Initial list of committers identified (elected/proposed by initial contributors)
    • Meets BoD policy (IPR)
    • Proposal has been socialized with potentially interested or affected projects and/or parties
    • In the case where a project will require changes in other projects, those projects are listed in the proposal, and a sponsoring developer in the project has been identified
    • Proposal email to TSC mailing list
  • Review by TSC: Confirm that the proposal is complete and the above listed requirements are met
  • Simple majority approval by voting TSC members

Graduation review

  • Graduation proposal posted for two weeks
  • Review metrics for graduation review:
    • Successful participation in releases: The project demonstrates stable output (code base, documents) within its history of releases in accordance with the release policy.
    • Project is active and contributes to OPNFV: The project demonstrates a stable or increasing number of contributions across recent release cycles. Contributions are commits which got merged to a repository of an OPNFV project or a related upstream project. Commits can for example be patches to update the requirements document of a project, code addition to an OPNFV or upstream project repository, new test cases and so forth.
    • Mature artifacts produced: The project demonstrates that the artifacts produced by the project are deployable (where applicable) and have been successfully deployed and used by users.
  • TSC review and simple majority approval by voting TSC members for graduation

Integration review

  • Integration proposal posted for two weeks
  • Review metrics for integration review include the metrics for graduation review plus the following:
    • Contributor diversity: The project demonstrates that it has a stable core team of contributors/committers which are affiliated to a set of at least three different companies. Core team members are those who have been active on the project for more than 2 releases, which means they were reviewing contributions to the project in OPNFV Gerrit and/or in the review-tool of the target upstream project(s).
    • Recognized value through other projects: The project demonstrates that its results are leveraged by other OPNFV projects in an ongoing way, i.e. for at least the last 2 releases.
    • Successful integration tests (only applicable to projects which provide features/functionality): The project demonstrates that component tests and system-level tests have been implemented, that tests are used within the OPNFV CI/CD test pipeline, and that tests bear successful results.
  • TSC review and simple majority approval by voting TSC members

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 potential negative impacts
    • Removal will not break OPNFV platform builds
    • Location identified and links created for the archived project
  • Simple majority approval by voting TSC members
  • If no approval, state of the project does not change
project_lifecycle_v2.txt · Last modified: 2016/01/15 09:28 by Frank Brockners