[ExtAPI] Dublin M2 Checklist

DRAFT PROPOSAL FOR COMMENTS

The following items are expected to be completed for the project to Pass the M2 Functionality Freeze Milestone.

M2 Release Functionality Freeze Milestone definition.



Practice Area

Checkpoint

Yes/No

Evidence - Comment

How to?

Practice Area

Checkpoint

Yes/No

Evidence - Comment

How to?

Product Management

Are all provisional APIs interface (stub) been defined (at beta-quality level)? 

Yes

REST API



Is there a final list of externally consumable APIs available?

Yes

REST API



For all completed Sprints, have Sprint Backlog Stories been marked as "Closed" in Jira?

Yes



Difference between a Product and Sprint Backlog

Are all tasks associated with the completed Sprint Backlog Stories been marked as "Closed" in Jira?

Yes

 JIRA Backlog



If applicable to your project, has your team been able to clear the project' blockers? If not provide status on the plan to close the blocker(s).

Yes



Link to blockers.

What new features or changes to existing features in this project scope need to be communicated to VNF Providers? List the changes in the Evidence tab.

N/A

No impact for VNF providers



If yes to the previous question, have these been communicated to the VNF Requirements project? 

N/A





Release Management


Have all source code files been updated with License Apache 2 header?

Yes

External API CII Badging

Specific rules and instruction are available in ONAP wiki.

Has the year format in copyright header of all source code files been updated? (Rules for new files created in 2019 and existing files modified in 2019 are different)

Yes

External API CII Badging

Guidance on year format

In case source code can't be edited, has a "License.txt" file been placed at the root directory for which the license is applicable?

Yes

External API CII Badging

Guidance for source code file that can't be edited

(a) Has the Project Team added appropriate license and copyright notices to all ONAP source code and documentation files, where possible for the particular file format?

Yes

External API CII Badging



(b) Has the Project Team reviewed and understood the most recent license scan reports from the LF, for both (a) licenses within the codebase and (b) licenses for third-party build time dependencies?

Yes

External API CII Badging



For both (a) and (b) questions, have all high priority non-Project Licenses been either removed, planned for removal before code freeze, or escalated as likely exception requests?

Yes

External API CII Badging



Have all API projects dependencies been captured?

Yes

ExtAPI

The source of information for the API dependency is the "API Incoming Dependency" of the M1 Release Planning deliverable. Please update the source accordingly, and let The Release Manager aware of the changes.

Development

For new projects approved for this release, have all defined repositories source code been placed into Gerrit?

N/A

External API Gerrit Link

For evidences, provide link(s) to Gerrit repos by providing the URL as shown in this example

Example

Has the project team reach the Automated Unit Test Code Coverage expectation? (Refer to artifacts available in Sonar)

Yes

Sonar Link

Goal: 55% for Incubation project in Dublin

Guidance on Code Coverage and Static Code Analysis

Tools: Sonar

Is there any binaries (jar, war, tar, gz, gzip, zip files) in Gerrit project repository?

No



Refer to CI Development Best Practices

Could you ensure that all proprietary trademarks, logos, product names, company name, etc. have been removed? All ONAP deliverables must comply with this rule and be agnostic of any proprietary symbols.

Yes

External API CII Badging



Is there any pending commit request older than 36 business hours in Gerrit?

No

External API Gerrit Link



Have all the Jenkins jobs successfully passed (Merge-Jobs)?

Yes

Jenkins External API Link

Only one failed jenkins job failed with no clear  reason

"No problems were identified. If you know why this problem occurred, please add a suitable Cause for it."

https://jenkins.onap.org/view/externalapi/job/externalapi-nbi-arm64-master-docker-version-java-daily/

Are all snapshot binaries available in Nexus?

Yes

Nexus Link



Integration and Testing  

Have functional test cases i.e. CSIT been documented in wiki?

It should include at least 1 or 2 CSIT that will be run on

Lab-xxx-OOM-Daily Jenkins Job

Yes

NBI CSIT Test Cases



More evolved CSIT tests planned for Dublin, cf NBI CSIT Test Cases

Have you implemented in Jenkins at least 1 functional test case for each of the project repository?

Yes

Jenkins CSIT

https://git.onap.org/ci-management/tree/jjb/externalapi/externalapi-nbi-csit.yaml

Only one repo for the project



Has the project code successfully passed the Build process?

Yes

Jenkins External API Link

Goal is to ensure your project latest commits have not broken the build.

Documentation

Has the team identified and outlined the set of documentations to be delivered in this Release?

Yes

REST API



Security

Has the Release Security/Vulnerability table been updated in the   protected Security Vulnerabilities wiki space?

Yes

Table in in the protected Security Vulnerabilities wiki space   corresponding to the latest NexusIQ scan

PTL reviews the NexusIQ scans for their project repos and fills out   the vulnerability review table

Have all project containers been designed to run as a non-root user?

Yes

Design container to run as non-root

https://gerrit.onap.org/r/#/c/79197/

 https://wiki.onap.org/display/DW/Best+Practices

  • The Docker and Kubernetes engines may run as root until such time as the products support non-root execution.

  • Applications may run as root within a container.

  • The process ID of a container must not run as the root ID with the exception of containers supporting ONAP features that require the container to run as the root ID.

  • Containers may run with root privileges.

  • Project containers that run as the root ID must document this in the release notes along with the functionality that requires the container to run as the root ID.