POMBA Development Process
- 1 Repositories
- 1.1 Branches
- 2 Code Submissions
- 3 Code Reviews
- 3.1 Committers
- 3.2 Gerrit Commands
- 4 Code Merges
- 5 Build Jobs
- 5.1 Verify Jobs
- 5.2 Merge Jobs
- 5.3 Docker Jobs
- 5.4 Release Jobs
- 5.5 Sonar Jobs
- 6 Nexus
- 7 Sonar Reports
- 7.1 Line Coverage
- 8 Final Testing
- 8.1 Test Cases
- 8.2 JIRA Workflow (Done)
Repositories
Code is contained within the following Git repositories.
Component | Repository |
---|---|
Common | https://git.onap.org/logging-analytics/pomba/pomba-audit-common/ |
Context Aggregator | https://git.onap.org/logging-analytics/pomba/pomba-context-aggregator/ |
AAI Context Builder | https://git.onap.org/logging-analytics/pomba/pomba-aai-context-builder/ |
SDC Context Builder | https://git.onap.org/logging-analytics/pomba/pomba-sdc-context-builder/ |
SDNC Context Builder | https://git.onap.org/logging-analytics/pomba/pomba-sdnc-context-builder/ |
Network Discovery Context Builder | https://git.onap.org/logging-analytics/pomba/pomba-network-discovery-context-builder/ |
AAI Data Router | |
AAI Search Data Service | |
AAI Validation Service | |
OOM |
Branches
The 'master' branch is for the release currently in progress. There are alternate branches for past releases. (e.g. 'Casablanca').
Code Submissions
Information on how to utilize Git and Gerrit to submit new code is available here: Configuring Gerrit.
Tips on code submission best practices are available here: Commit Messages.
When submitting to non-core POMBA repositories, it's helpful to label the submission with 'pomba', both for ease of filtering and batch reviewing.
JIRA Workflow (Submitted)
When all code submissions for a JIRA issue have been made, the JIRA issue should be transitioned from 'In Progress' to 'Submitted' to keep people informed.
Code Reviews
Code reviews are performed in Gerrit.
Component | Code Reviews |
---|---|
Common | https://gerrit.onap.org/r/#/q/project:logging-analytics/pomba/pomba-audit-common |
Context Aggregator | https://gerrit.onap.org/r/#/q/project:logging-analytics/pomba/pomba-context-aggregator |
AAI Context Builder | https://gerrit.onap.org/r/#/q/project:logging-analytics/pomba/pomba-aai-context-builder |
SDC Context Builder | https://gerrit.onap.org/r/#/q/project:logging-analytics/pomba/pomba-sdc-context-builder |
SDNC Context Builder | https://gerrit.onap.org/r/#/q/project:logging-analytics/pomba/pomba-sdnc-context-builder |
Network Discovery Context Builder | |
AAI Data Router | |
AAI Search Data Service | https://gerrit.onap.org/r/#/q/project:aai/search-data-service |
AAI Validation Service |
Committers
Make sure to add appropriate committers (as well as reviewers) to submissions so that they can provide them with "+2" reviews, allowing for a merge to be done.
Note: For some projects (and maybe more in the future), comitters may not be from the same company as the submitter.
Project | Committers |
---|---|
POMBA | @Michael O'Brien @Prudence Au |
SDNC | @Dan Timoney |
AAI | @Steve Blimkie |
OOM | @James MacNider @Mike Elliott @Alexis de Talhouët |
Note: Comitters are subject to change so make sure you're up to date!
Gerrit Commands
Refer to Development Procedures and Policies#MagicWords for information about special "replies" that can be used to invoke actions.
Code Merges
Once code submissions have been made and a "+2" review has been received, authorized committers may then merge the change into a branch.
Sonar Results
Once code is merged and a Sonar job is run, the results of the scan should be checked to ensure that proper line coverage has been met and there are no major vulnerabilities detected. If there is a lack of coverage or vulnerabilities reported, they should be addressed, preferably immediately, though a bug could be entered to prioritize and track this required work.
Refer to the SonarReports section for more details.
JIRA Workflow (Delivered)
Once all code submissions related to the JIRA issue have been merged into their respective project branches, the JIRA issue should be transitioned from 'Submitted' to 'Delivered' to inform others that, should they deploy ONAP, this feature, functionality or bug fix will be available.
Comments regarding any testing that has been to this point or Sonar results observed or anything else of interest should be included.
Build Jobs
Note: Jobs listed pertain to the release under development (i.e. for the master branch) but there will exist similar jobs for previous releases (e.g. casablanca).
Verify Jobs
The verify jobs are engaged when code is submitted to the repository in order to confirm builds wouldn't break due to the inclusion of the change.
'ONAP Jobbuilder' events will appear in the Gerrit review.
Component | Jobs |
---|---|
Common | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-audit-common-master-verify-java/ |
Context Aggregator | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-context-aggregator-master-verify-java/ |
AAI Context Builder | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-aai-context-builder-master-verify-java/ |
SDC Context Builder | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-sdc-context-builder-master-verify-java/ |
SDNC Context Builder | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-sdnc-context-builder-master-verify-java/ |
Network Discovery Context Builder |
Merge Jobs
The merge jobs are engaged when a committer allows a code change to be added to a branch in the repository.
Component | Jobs |
---|---|
Common | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-audit-common-master-merge-java/ |
Context Aggregator | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-context-aggregator-master-merge-java/ |
AAI Context Builder | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-aai-context-builder-master-merge-java/ |
SDC Context Builder | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-sdc-context-builder-master-merge-java/ |
SDNC Context Builder | https://jenkins.onap.org/job/logging-analytics-pomba-pomba-sdnc-context-builder-master-merge-java/ |
Network Discovery Context Builder |
Docker Jobs
The Docker jobs build docker images and upload them to Nexus.
Component | Jobs |
---|---|
Context Aggregator | |
AAI Context Builder | |
SDC Context Builder | |
SDNC Context Builder | |
Network Discovery Context Builder |
Release Jobs
...
Component | Jobs |
---|---|
Common | |
Context Aggregator | |
AAI Context Builder | |
SDC Context Builder | |
SDNC Context Builder | |
Network Discovery Context Builder |
Sonar Jobs
The Sonar jobs perform a code-quality scan of the repository to ensure that best practices are adhered to and vulnerabilities are addressed.
Nexus
Artifacts produced by build jobs – e.g. Docker images – are stored in Nexus.
Sonar Reports
Sonar provides a dashboard of metrics related to code repositories that should be checked to ensure that quality thresholds are being met.
Component | Reports |
---|---|
Common | https://sonar.onap.org/dashboard?id=org.onap.logging-analytics.pomba%3Apomba-audit-common |
Context Aggregator | https://sonar.onap.org/dashboard?id=org.onap.logging-analytics.pomba%3Apomba-context-aggregator |
AAI Context Builder | https://sonar.onap.org/dashboard?id=org.onap.logging-analytics.pomba%3Apomba-aai-context-builder |
SDC Context Builder | https://sonar.onap.org/dashboard?id=org.onap.logging-analytics.pomba%3Apomba-sdc-context-builder |
SDNC Context Builder | https://sonar.onap.org/dashboard?id=org.onap.logging-analytics.pomba%3Apomba-sdnc-context-builder |
Network Discovery Context Builder |
Line Coverage
Each project institutes a certain threshold for line coverage that must be upheld. If code submissions result in line coverage dipping below this threshold, this will eventually be noticed and cause trouble for the developers. (In Dublin Logging, the threshold is 50% but this is subject to change.)
After completing work on a story or bug, Line Coverage should be checked to ensure that thresholds are met. (It's best to have higher coverage than required in order to be able to accommodate future code submissions, particularly if/when the current threshold is raised.)
Final Testing
After code has been merged and is available in ONAP, the updated code should be pulled down and installed via OOM. Thorough testing of the feature or bug fix, including integration, should be carried out.
Test Cases
Test cases executed should be documented on the wiki to allow for transparency and to help future developers or testers who may work on the project.
Release | Test Cases |
---|---|
Dublin | |
Casablanca |
JIRA Workflow (Done)
Once all testing has been completed, the JIRA issue should be transitioned from 'Delivered' to 'Done' to inform others that every piece of work related to the issue has been completed successfully.
Comments linking to or citing test cases executed, documentation added or anything else of interest should be included.