Project Review Recordings

1. Problem Statement

Do we need to add another state “Unmaintained” as part Project Component Lifecycle (Unmaintained)?

What is the difference between the "Archived" state and the "Unmaintained" state?

2. Definitions

ONAP Core Component (MVP-Minimum Vital Product): An ONAP component is identified as ONAP Core Component if this component is impacting the ONAP deployment and/or Onboarding, Instantiation, Run-Time, etc. for a particular ONAP release

Common Components: DMaaP (or MSB);

Service Delivery

  • SDC or easy Onboarding SDK
  • MSO
  • AAI
  • CCSDK/SDN-C

Service Assurance

  • DCAE (VESCollectors + Eventprocessors/Analytics ms)
  • Policy

Component Dependency Matrix (in progress); Flow matrix


Unmaintained:

  • Project(s) or sub-project(s) is no more part of any official release, but some parts might still be consumed indirectly by other project teams or some functionalities are still needed but no alternative has been implemented yet.
  • These Project(s) or sub-project(s) are no more subject to non-functional compliances. The level of support will be dependent on the ONAP Community willingness to contribute, fast response time is not guaranteed.
  • The project will be still part of OOM deployment and High Priority bugs might be fixed to unblock the current and/or maintained releases.


Archived:

  • Project can reach "Archived" state for multiple reasons. Either project has successfully been completed and its artifacts provide business values, or project has been cancelled for unforeseen reasons (no value anymore, technical, etc.).
  • Project in any state can be "Archived" through a Termination Review.

3. Transition Steps

Any ONAP projects or its sub capabilities when no longer maintained should be subjected to this process to either create a maintain plan with in ONAP ecosystem or retire SW capability without creating adverse impact on ONAP.

Note:  Anywhere in the steps below that "PTL" is in the "Responsible" column, it is assumed that the TSC will take that responsibility if the PTL is not available.


ActionResponsibleAccountableConsultedInformedArtifactTool/process
1Final call to the ONAP Community raised by the PTL or by the TSC or TSC-Delegate. (Negative Result for volunteer for succession results in following steps).

PTL

TSCPTLs

ArcSubComm

SECCOM


JIRA EPIC(new) Ticket ( highest priority/severity)

ONAP TSC JIRA Ticket (TSC on update CC)
2Review what is used by the Community and the dependencies to other components and maintain the repositories that are necessary for the ONAP ComponentsArcSubCommTSCPTLs, SECCOMPTLsJIRA EPIC-Tasks per project-New (Projects Dependency List)ONAP JIRA, Nexus, PTL Assigned task updates, Weekly status on TSC Meeting
3Verify what (if any) impact the change has on OOM/Integration (CIST)/DOC projects and ensure that is communicatedArcSubCommTSCPTLs, SECCOM, DOCPTLsJIRA Task update, impact assessment reportONAP JIRA, Weekly status on TSC Meeting
4If the repo(s) are still required, then Identify an alternative path (if any)ArcSubCommTSCPTLsArcSubComm, SECCOMJIRA Task update,Weekly status on TSC Meeting
5Identify potential remaining committers to maintain the remaining repositories.TSCTSCPTLsArcSubComm, SECCOMInfo.yaml to look up, JIRATSC delgation, ONAP JIRA, Gerrit Repo.
6Make functionality retirement decisionTSCTSCArchSubComm, SECCOMArc, Sec, PTLs

JIRA update

LFN IT Jira issue for updating INFO.yaml

ONAP JIRA

LF IT JIRA

7Update INFO.yaml with TBD (define fields, etc.)

PTL, Contributor (if available),

LF IT

TSCNoneArcSubComm, SECCOM, PTLsJIRA taskPTL, Committer, Super Committer,  LF-IT, LF IT JIRA
8In gerrit set the appropriate repositories that are no longer in use  to 'Read Only' access

PTL (make request if available),

LF-IT

PTL

TSC (if no PTL)

None

ArcSubComm, SECCOM, PTL (if available)

TSC

ONAP JIRA, LF IT JIRAONAP JIRA, LF IT JIRA, gerrit, github
9Update the Architecture diagrams and references (Confluence)ArchSubCommTSCNoneDoc, ArcSubComm, SECCOM, PTL (if available)ONAP JIRA, wikiONAP JIRA, confluence
10Update the Architecture diagrams and references (readthedocs)DocTSCArcSubCommNonereadthedocsreadthedocs

Indicate in the release note that the project is in Unmaintained state i.e. add a hint in the header.PTL TSCNoneNoneUser Docs, Release NotesONAP JIRA Updates, WIKI, ONAP.read the docs
11Remove Jenkins jobs (I think Code scanning and report generation needs to continue until closed and archived)

PTL (make request if available),

LF-IT

TSCNonePTL (if available)JJBsJenkins
12

Move the project to Unmaintained State Projects including Clean-up of other wiki pages, RDT, JIRA, mailing lists, calendars, etc. 

Project Management & its delegateTSCNoneNoneJIRA Tickets UpdatesJIRA ONAP, JIRA LF-IT
14The project information for this component will no longer be branched (i.e. master) and will be linked to final maintained release_XXX. (LF-IT to adjudicate changes to CI tools)LF-IT, Integration, Release MgtTSCArchSubCommSECCOMemailONPA JIRA, LF-IT JIRA Updates
15

Note:  the following applies only if the project or component is reintroduced to a release after being archived.

Any critical, severe or high vulnerability found in the code written by the project team MUST be fixed within 60 days or prior to the inclusion of the project in a new release, whichever occurs first. (This can not be done due to lack of resources.
1) If committers are still around, provide a fix 
2) If the fix is not possible, open CVE, and Update release notes

TSC, SECCOM, DocumentationTSCPTLs, Committers (volunteer PTLs)ArchSubCom, DocumentationConf Calls, emailCVE, Documentation, ONAP JIRA, LF-IT JIRA.


Transition from "Unmaintained" to "Incubation/Mature": A Unmaintained project can be moved to “Incubation” or “Mature" if there is a new interest from the ONAP Community and meeting the requirement for the project state while performing a project review, including PTL responsibility and committers engagement. The following steps will be re-initiatied

#0 Communication to the ONAP Community the transition change

#1 Remove the 'Read Only' access on the repositories used by the component

#2 Verify what (if any) impact the transition has on OOM/Integration (CIST)/DOC projects and ensure that is communicated

#3 Update INFO.yaml including PTLs, Committers, etc.

#4 Update the Architecture diagrams and references 

#5 Re-Activate Jenkins Jobs

#6 Inform Steven Winslow (LFN IP Legal) and enable all the scans (Sonar, FOSSology, NexusIQ) on the project repositories

#7 Create and/update wiki pages, RDT, JIRA, mailing lists, calendars, etc.

# 8 Remove the hint in the header in the release note

#9 The project information for this component will be branched to the current ongoing release and links in RDT will be updated accordingly


Transition from "Unmaintained" to "Archived": A Unmaintained project can be moved to “Archived" if the project is no more critical for the ONAP Platform (Deployment, Onboarding, Instantiation, Run-Time) or has any dependency to any ONAP component.

The following "Termination" steps will be performed:

#1 Ensure that there is

        1.1 No more dependency from the 'retired' project candidate to any component

or     1.2 An alternative architecture is identified to replace the 'retired' project candidate by the Architecture Subcommittee or by a dedicated TSC Task Force

              PTL to review and to have an integration plan proposal   

              PTL integration plan to be part of the ONAP roadmap      

#2 Update the Architecture diagrams and references 

#3 TSC to inform the ONAP Community that the project will no more be maintained and Termination process will be kicked off, promoting the alternative (if any)

#4 (super-committer or LF RelEng) Update INFO.yaml to reflect the state of the project  

#5 Verify what (if any) remaining impact the change has on OOM/Integration (CIST)/DOC projects and ensure that is communicated

#6 In gerrit set the remaining repositories to 'Read Only' access

#7 Remove the remaining Jenkins jobs (if any)

#8 Inform Steven Winslow (LFN IP Legal) and disable all the remaining scans (Sonar, FOSSology, NexusIQ) on the remaining repos (if any)

#9 Move project to Project State: Archived including Clean-up of other wiki pages, RDT, JIRA.

#10 Indicate in the release note that the project is in 'Achieved" state i.e.  update the hint in the header.


4. Projects currently under Unmaintained:

  • AAF, APPC, AAI/ESR GUI and AAI/ESR Server, MUSIC (OOF has a dependency on it), Logging incl. Pomba, PORTAL, VID, ExtAPI
  • Repositiories currently in 'Read Only access':  DCAE-D SDC plugin, AAI/Sparky, OOF/FGPS, DCAE/PNDA, OOF-CMSO, Policy-engine
    and
    • sdc/dcae-d/ci
    • sdc/dcae-d/dt
    • sdc/dcae-d/dt-be-main
    • sdc/dcae-d/dt-be-property
    • sdc/dcae-d/fe
    • sdc/dcae-d/rule-engine
    • sdc/dcae-d/tosca-lab

gerrit query to identify all the repositories that have been set to "Read only" - GET https://gerrit.onap.org/r/projects/?state=READ_ONLY

The result will be captured in a *.json file

5. Example of Transition from “Incubation/Mature/Core” to "Unmaintained"

What has been done i.e. Logging incl. Pomba

#1 Final call to the ONAP Community raised by the PTL or by the TSC.

#2 Review what is used by the Community and the dependencies to other components 

Maintain the repositories that are necessary for the ONAP Components:

https://gerrit.onap.org/r/gitweb?p=logging-analytics.git;a=tree;f=reference/logging-filter;h=78d5995fd54b580fbda4245ccfdee26504a45a30;hb=refs/heads/master

https://gerrit.onap.org/r/gitweb?p=logging-analytics.git;a=tree;f=reference/logging-slf4j;h=aac6f850373892b1da131405521d527751588f8e;hb=refs/heads/master

https://gerrit.onap.org/r/gitweb?p=logging-analytics.git;a=tree;f=pylog;hb=HEAD

#3 Identify potential remaining committers to maintain the remaining repositories: 2 committers for Java Libraries and 1 Committer for Python library

#4 In gerrit set the appropriate repositories that are no longer in use  to 'Read Only' access

#5 Verify what (if any) impact the change has on OOM/Integration (CIST)/DOC projects and ensure that is communicated

#6 Update the  INFO.yamls for all of the repos

#7 Update the Architecture diagrams and references

#8 moved to the Unmaintained State Projects 

Next steps:

#8 Remove Jenkins jobs

#9 Inform Steven Winslow and disable all the scans (Sonar, FOSSology, NexusIQ) on the unmaintained logging repos

#10 Identify an alternative path i.e. SDTOUT (REQ-374) for log collection

#11 Move Logging to Project State: Archived following the Termination Review process (incl. Clean-up of other wiki pages, RDT, JIRA, mailing lists, calendars, etc.)

#12 Indicate in the release note that the project is in Unmaintained i.e.  add a hint in the header.

#13 The project information for this component will no more be branched (i.e. master) and will be linked to the latest maintained release.

#14 Any critical, severe or high vulnerability found in the code written by the project team MUST be fixed within 60 days or prior to the inclusion of the project in a new release, whichever occurs first.

6. Additional link(s)/reference(s) 

  • Proposed diagram for moving projects from Active to Unmaintained to Archived 
  • Diagram for newly proposed lifecycle 
  • ONAP Project Lifecycle & Review (prior to this Unmaintained proposal)

7. Remaining action Items

  • (SECCOM) Finalize the component dependency Matrix - Flow matrix
  • (Architecture Subcommittee) Define ONAP MVP components

8. Closed action items

  • Kenny Paul<follow up with Jessica Wagantall to see if there is a query to identify all the repositories that have been set to "Read only"
  • Kenny Paul INFO.yaml becomes the true source - plan to deprecate the following wiki page - Resources and Repositories
  • (Chaker/Jason) Add Project State Maintenance to the Project Lifecycle deck
  • (Task Force): Present to the PTLs (1/25) then to the TSC (1/28) to update Technical Community Document accordingly and vote.

7 Comments

  1. Is AAF really a part of MVP? Bell Canada as far as I know uses onap without it and it works for them

    1. Thank you for your feedback Krzysztof Opasiak - I have removed it but Benjamin Cheunghighlighted some dependencies so feel free to follow-up with him

  2. Hi,
    I have some comments.

    1. The sentence "The project will be still part of OOM deployment and High Priority bugs might be fixed to unblock the current and/or maintained releases"
      1. This should be part of the definition of Maintenance, not of the transistion definition "Transition from Maintenance to Incubation/Mature" IMHO
    2. It is stated:  "Project(s) or sub-project(s) is no more part of any official release", but still installed via OOM
      1. How do we handle the documentation of that project in https://docs.onap.org/en/latest/guides/onap-developer/developing/index.html?
        1. we could completely remove the component document from the list, although it is delivered (not prefered)
        2. we can add a hint in the header, e.g. (Component under "Maintenance")
      2. Will the project documentation still be branched for a release and we get a release specific RTD?
        1. If not, should we link to the latest version (master branch) or to the latest maintained release (e.g. frankfurt)?
    1. Thank you Andreas Geissler for your feedback. 

      1. The sentence "The project will be still part of OOM deployment and High Priority bugs might be fixed to unblock the current and/or maintained releases"
        1. This should be part of the definition of Maintenance, not of the transistion definition "Transition from Maintenance to Incubation/Mature" IMHO 

      <<Agreed and updated accordingly>>

      1. It is stated:  "Project(s) or sub-project(s) is no more part of any official release", but still installed via OOM
        1. How do we handle the documentation of that project in https://docs.onap.org/en/latest/guides/onap-developer/developing/index.html?
          1. we could completely remove the component document from the list, although it is delivered (not prefered)
          2. we can add a hint in the header, e.g. (Component under "Maintenance")

       << We will add a hint in the header - wiki page updated accordingly >>

      1. Will the project documentation still be branched for a release and we get a release specific RTD?
        1. If not, should we link to the latest version (master branch) or to the latest maintained release (e.g. frankfurt)?

      << The project information for this component will no more be branched (i.e. master) and will be linked to the latest maintained release >>

  3. I had added this as an in-line comment, but I will note it here as well-

    To find locked repos you can run the following command in your terminal

    GET https://gerrit.onap.org/r/projects/?state=READ_ONLY
  4. As per TSC Call on 3/18/2021, TSC approve the process and workflow as described in Project State: Unmaintained with the provision that "Maintenance" be changed to "Unmaintained" globally.