Unmaintained Projects Taskforce
These meetings were initiated in response to ongoing discussions in the TSC and PTL meetings about dealing with dependencies on unmaintained projects, as well as documentation.
Proposed Unmaintained Project/Artifact Identification & Deprecation Process
Presented to PTLs March 13, 2023; Architecture subcommitte March 14, 2023
@Amy Zwarico: Proposed process for removing unmaintained artifacts from ONAP
Definition: artifact is unmaintained if has had no new build in over 12 months or it has no PTL
Case 1: Artifact is part of a project without a PTL
Step 1: TSC engage Architecture subcommittee to determine other project dependencies on project
Case 1: No dependencies on project without PTL
TSC request LFIT to remove all project tasks from Jenkins and set repo(s) to read only
TSC creates DOCS Jira to add deprecation/removal of project from the ONAP release
Case 2: Other projects have dependencies on project
TSC initiate effort to find replacement for unsupported functionality
Case 2: Artifact unmaintained and is part of a project with a PTL
Step 1: Each PTL notified via Jira of their unmaintained artifacts & Architecture subcommittee notified via ARCH Jira of all unmaintained artifacts in active projects
Step 2: PTL documents intra-project dependencies on artifact in the project Jira
Step 3: Architecture subcommittee determines inter-project dependencies via the architecture reviews and documents results in ARCH Jira
Step 4: PTL Removes unmaintained projects with no dependencies from the release
PTL creates a gerrit request in the CI management repo to remove the Jenkins jobs associated with the unneeded repos and set repos to read only
Jira should remain open until gerrit request is merged by LFIT (does this remove jobs from OOM?)
PTL adds removal of the artifact/repo to their release documentation and removes all other documentation about the artifact/repo from their documentation
Step 5: Architecture/Docs informs TSC of removal of artifacts/repos
Meeting Minutes
March 6, 2023
Attendees: @David McBride , @Amy Zwarico , @Jessica Gonzalez , @Thomas Kulik , @Fiachra Corcoran , @Thomas Kulik
Amy: we've discussed (see Feb 27 notes) the process when a project has a PTL, but what about the case where a project has no PTL?
In the case of no PTL, we need to use the project archiving process, vs the repo archiving process.
The ultimate goal is to avoid shipping unmaintained code
Update the arch review process to review any unmaintained Jiras assigned to the project
Complete unmaintained Jiras by M1
Arch review includes review of unmaintained Jiras and is completed by M2
Attach unmaintained Jira as linked issue to "request arch review" task at M1
May not need to include arch task in unmaintained Jira
The team agrees that this should be the last meeting
February 27, 2023
Attendees: @David McBride , @Amy Zwarico , @Jessica Gonzalez , @Muddasar Ahmed
The team concurs that we are ready to wrap up this task force.
We will use our remaining time to consolidate and summarize what we learned:
Part 1 - How do we identify candidate repositories for
Script examines Jenkins release tab. Examines the last time that a particular artifact (repo) was published.
Amy, Bert, and Jess will coordinate to submit script into CI Management repo
Script generates a list of artifacts that were not published in the last 12 months.
This is the list of candidates for investigation for archiving
Part II - Investigate list of artifacts
Generate Jira issue for each project. Note that a Jira issue could have more than one artifact.
Note that these tickets use the "unmaintained" label
Jira issue should contain the following questions/directions
Is the image used by the project (already doing this)?
Is the image used by any other project (already doing this)?
What is the repo associated with the image or component?
Does the repo contain anything else that is still in use within the project, or anywhere in ONAP?
IF the PTL determines that the repo can be archived, then the PTL creates a gerrit request in the CI management repo to remove the Jenkins jobs associated with the unneeded repos
Jira should remain open until gerrit request is merged
TASKS
PTL - generate gerrit to remove jenkins jobs (submit LFIT if PTL not available)
Arch - review to identify dependencies and related issues
DOCS - exclude from documentation anything associated with the repository being archived
OOM - remove artifact from deployment
PTLs provide feedback through the Jira issue as to whether the identified artifacts should be removed from Jenkins jobs and archived
Part III (See Oct 17 notes)
PTL - Deprecate the Jenkins jobs that generate the image (see Jira directions above)
Submit ticket to IT to deprecate the repo (archive)
Indicate in the ticket whether NexusIQ and Sonar reports should be retained
Other questions/issues
Do we need to update @Muddasar Ahmed RACI (last reviewed last October)
Plan to share conclusions with the TSC
The team concurs that we need to meet at least one more time before closing the task force.
Feb 7 - 20
Canceled until Amy's Jira issues come due (Feb 22).
January 30, 2023
Attendees: @David McBride , @Amy Zwarico , @Jessica Gonzalez , @Muddasar Ahmed
Note: Amy did review list of repos with PTLs on Jan 23 (see Next Actions from Jan 9 minutes).
Jessica leads us through a review of Insights
Amy will begin generating Jira tickets for the London release. Candidates will be determined based on Bert's filtering script and spreadsheet.
Amy will use the revised questions documented in Oct 17 meeting minutes for creating JIRA tasks.
David will send emails to committers for candidate repos whose project lacks a PTL. Amy will supply the list to David.
We will review JIRA issues created by Amy next week.
January 23, 2023
Canceled by consensus
January 16, 2023
Canceled due to holiday
January 09, 2023
Attendees: @David McBride , @Amy Zwarico , @Thomas Kulik
New tab that Jessica added: https://jenkins.onap.org/view/Release-Jobs/
Note that the spreadsheet that Bert generated is a filter of this page.
Next actions:
Amy to review Bert's list of repos (see spreadsheet linked to Jan 5 minutes) with PTLs on Jan 23
Invite Jessica to Jan 23 meeting to reconcile Insights page vs Jenkins tab. How are these related?
Thomas to investigate adding the last user associated with last repo activity to the "Release Jobs" Jenkins page
Amy will talk with Bert about doing the same, only using the API, instead, to extract the user name
Next meeting - Jan 23 (Note: Jan 16 canceled due to MLK holiday)
December 19, 2022 - January 2, 2023
Canceled due to winter holidays.
December 12, 2022
Attendees: @David McBride , @Amy Zwarico , @Jessica Gonzalez
@Jessica Gonzalez shares Insights: https://insights-v2.lfx.linuxfoundation.org/onap/code-base/repositories-that-need-attention
May be useful in analyzing which repositories we should focus on archiving
Next meeting is Jan 9.
December 5, 2022
Attendees: @David McBride , @Amy Zwarico , @Fiachra Corcoran , @Jessica Gonzalez
Process (supplements use of Version Evolution Tool):
from the release merge jobs within Jenkins
generate a list of runs of release jobs across all ONAP (artifacts + images)
use the last successful run date to determine how recently the item was touched
Use this list to communicate with PTLs
Jessica to join the meeting again next week (Dec 12).
Note that Dec 12 will be our last meeting of the calendar year. We will resume on Jan 9.
@Bert Sloan (AT&T resource) use Jenkins API to pull all repos from Jenkins release-jobs list
November 28, 2022
Attendees: @David McBride , @Amy Zwarico , @Fiachra Corcoran
Amy asks, what do we want to accomplish for the London release?
Reviewed five closed unmaintained repo tasks assigned to Kohn.
Note: version evolution tool needs to be updated to include the Kohn branch
Fiachra will coordinate with Michal to update the script.
Amy and Fiachra noted that we would still like to talk with Jessica.
David to invite Jess to the Dec 5 meeting.
Next meeting is Dec 5.
Meeting is canceled Dec 19, Dec 26, Jan 2.
November 21, 2022
Attendees: @David McBride
Meeting canceled due to low participation.
Next meeting is Nov 28.
November 14, 2022
Canceled due to ONE Summit
November 7, 2022
Attendees: @David McBride , @Thomas Kulik , @Fiachra Corcoran
Meeting canceled due to low participation.
Next week (Nov 14) is canceled due to ONE Summit.
October 31, 2022
Meeting canceled.
October 24, 2022
Attendees: @David McBride , @Muddasar Ahmed , @Tony Hansen , @Byung-Woo Jun , @Amy Zwarico
David to invite Jessica to the Oct 31 meeting.
October 17, 2022
Attendees: @David McBride , @Muddasar Ahmed , @Tony Hansen , @Thomas Kulik, @Fiachra Corcoran , @Thomas Kulik
Update request to PTL (conversation with Jessica):
Is the image used by the project (already doing this)?
Is the image used by any other project (already doing this)?
What is the repo associated with the image or component?
Does the repo contain anything else that is still in use within the project, or anywhere in ONAP?
Process for archiving a repository (conversation with Jessica)
PTL - Deprecate the Jenkins jobs that generate the image
Submit ticket to IT to deprecate the repo (archive)
Indicate in the ticket whether NexusIQ and Sonar reports should be retained
@Muddasar Ahmed points out that step 5 in the RACI belongs with step 1
Muddasar to combine step 5 into step 1, then delete step 5
October 10, 2022
Attendees: @David McBride , @Amy Zwarico , @Muddasar Ahmed , @Tony Hansen , @Byung-Woo Jun , @Kenny Paul (Deactivated)
VFC-1978 was updated with a comment that shows the repo associated with the image vfc-huawei-vnfm-driver
IT ticket updated to request that repo be archived
We also need to confirm that there is nothing else in the repo that is still in use
How do we determine the repo from the image that is displayed by the version evolution tool?
Do we need to follow two steps: 1) stop image generation; 2) archive repo
David to discuss docker generation with RELENG. How do we stop it?
David to submit request to IT to remove all instances of the image policy-mariadb (POLICY-4308)
@Muddasar Ahmed points out that we should finish polishing the unmaintained repo process, then present it to the PTLs.
Tentatively plan on Oct 24 or Oct 31
October 3, 2022
Attendees: @David McBride , @Amy Zwarico , @Muddasar Ahmed , @Tony Hansen
Discussed issue of authority for archiving repositories, since this came up at the TSC meeting last week. We agreed on the following.
PTL may authorize archiving. No TSC approval needed.
If PTL is unavailable, then the TSC must authorize archiving.
Archiving a single repo or subset of repos is different that archiving a project, or otherwise changing the project lifecycle state. That requires TSC approval.
IT reports that they are unable to find vfc-huawei-vnfm-driver (VFC-1978). Left note in Jira asking PTL to show us the location.
September 26, 2022
Attendees: @David McBride , @Amy Zwarico , @Muddasar Ahmed , @Fiachra Corcoran
Some records reported by the version evolution tool are docker images, rather than repos (e.g., POLICY-4308)
New link for tool (DT): https://logs.onap.org/onap-integration/daily/onap-daily-dt-oom-master/2022-09/24_05-31/index-versions.html (date specific)
It appears that code repos can be distinguished by "nexus3" in the URL in the image column
@Fiachra Corcoran suggests an improvement to the tool to differentiate between "infra" and source code repos
Agreement that we should focus on code repos from Nexus3. We will reconsider docker images later.
Reviewed unmaintained Jira tickets
DCAEGEN2-3233 - deferred to London release
VFC-1978 - will propose archiving vfc-huawei-vnfm-driver to the TSC
POLICY-4308 - This refers to a docker image. The team decided that we will focus on code repos for now. However, we may look at this again in the future.
MSB-701 -Docker image - see notes above
AAI-3514 - AAI PTL reports that repos are still in use. Lack of updates appears to be due to the lack of new development, but also due to a lack of updating vulnerable packages. Left comment to PTL to that effect.
September 19, 2022
Attendees: @David McBride , @Thomas Kulik , @Amy Zwarico , @Muddasar Ahmed
Reviewed Jira issues assigned by Amy to projects with candidates for unmaintained repo processing.
Created Jira epics
David to propose to the TSC archiving vfc-huawei-vnfm-driver (VFC-1978).
August 29, 2022
Attendees: @David McBride , @Thomas Kulik , @Amy Zwarico , @Tony Hansen
Meeting canceled next week (Sept 5) due to the Labor Day holiday. Next meeting, Sept 12.
August 22, 2022
Attendees: @David McBride , @Thomas Kulik , @Amy Zwarico , @Tony Hansen
Review RACI (see link below)
August 15, 2022
Attendees: @David McBride , @Thomas Kulik , @Amy Zwarico , @Byung-Woo Jun , @Tony Hansen , @Kenny Paul (Deactivated)
If a project is not participating in a release, can they CLOSE - won't do, or defer to the next release?
Team feels that projects should continue to support unmaintained repo activities / information gathering, even if they are not participating in the release
Need an escalation process
@Kenny Paul (Deactivated) suggests that RM should escalate
RACI: Project State: Unmaintained
Review next week
August 8, 2022
Attendees: @David McBride , @Andreas Geißler , @Thomas Kulik , @Amy Zwarico , @Byung-Woo Jun , @Tony Hansen , @Kenny Paul (Deactivated)
Feedback
July 25, 2022
Attendees: @David McBride , @Andreas Geißler , @Thomas Kulik , @Amy Zwarico , @Byung-Woo Jun , @Muddasar Ahmed , @Paweł Pawlak , @Tony Hansen
Feedback from Fiachra on status of version evolution tool: The Linux Foundation Mail - status of version evolution tool?.pdf
Andreas reports that version evolution tool has been activated on DT. Example.
What does it mean when a project does not participate in a release?
What if the project has required changes?
If there is a change to the project, are they still subject to release management tasks?
Can we define a minimal participation for a release (i.e., bug fixes only + support tasks)
July 18, 2022
Attendees: @David McBride , @Andreas Geißler , @Thomas Kulik , @Thomas Kulik , @Amy Zwarico , @Byung-Woo Jun , @Muddasar Ahmed
Version evolution tool (Note: date specific) example: https://logs.onap.org/onap-integration/daily/onap_daily_pod4_master/2022-06/24_05-56/index-versions.html
Candidates for unmaintained project repo process (determined by selecting from list generated by using grey filter in version evolution tool):
aai
cli
dcae
dmaap
policy
multicloud
so
vfc
vnfsdk
Use Jira label "unmaintained"
Jira summary should start with "Unmaintained"
Include a list of repos from the version evolution tool (grey filter) in the description for the Jira issue
@Amy Zwarico will generate Jira issues for the projects above.
@David McBride check with Fiachra about status of version evolution tool. Are there still bugs?
Latest unmaintained projects deck (v6): 22_04_18_ONAPUnmaintainedProjects_v6.pptx, 22_04_18_ONAPUnmaintainedProjects_v6.pdf
June 27, 2022
Attendees: @David McBride , @Tony Hansen , @Thomas Kulik , @Thomas Kulik , @Muddasar Ahmed
Status of docker version evolution tool? Are there still issues?
Repo.yaml
Use as a reference for status of every repo ("single source of truth")
For example, documenting the status of repos and projects in ONAP documentation
Process?
Use a release management task at M1 or M2 for PTLs to review repos.yaml and update as needed
Need a process for projects that dissolve and where the PTL and committers are unavailable
Format
still an open question
use yaml?
enumeration of states?
file validation?
Need to align changes to repos.yaml file with process flow document
May 30, 2022
Canceled due to Memorial Day holiday
May 23, 2022
Attendees: @David McBride , , ,