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.
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.
The lifecycle of the projects is depicted on the following diagrams:
|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)
- Size and diversity of the active community (number and diversity of people contributing)
- 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 committer 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 proposal posted for two weeks
- Review metrics for creation 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 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 proposal posted for two weeks
- A termination review is initiated by the project PTL, unless the PTL is unresponsive to attempts to contact them, or if the project has not submitted an intent-to-participate notification for the two most recent releases. In that case, a project contributor, a TSC member, or LF staff may initiate the termination review. If the termination review is initiated by someone other than the PTL, then the PTL should be copied, using their last known good email address, when the termination review is posted to the mailing list.
- 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
- Removal will not break Reference Platform builds
- Location identified and links created for archived project
- Simple majority approval by voting TSC members
- If no approval, remains in pre-reviewed state