Jump to: navigation, search

OpenDaylight Controller:Development Infrastructure Overview

Guide Contents
OpenDaylight Controller Overview
Architectural Framework
Development Infrastructure Overview
Pulling, Hacking, and Pushing the Code from the CLI
Pulling, Hacking, and Pushing the Code from Eclipse
Sample Applications
Library Descriptions
REST Reference and Authentication
Java API Reference
Topologies
Top Level Contents

OpenDaylight Infrastructure consists of

SCM: git (OpenDaylight git)

Code Review: Gerrit (OpenDaylight Gerrit)

Continuous Integration: Jenkins (OpenDaylight Jenkins)

Artifact Repo: Nexus (OpenDaylight Nexus)

Quality Management: Sonar (OpenDaylight Sonar)

Bug Tracking Bugzilla (OpenDaylight Bugzilla)

Wiki: MediaWiki (OpenDaylight Wiki)

The rough code flow is depicted below:


Development Infrastructure Overview.jpg


  1. Pull code: contributor pulls code from the authoritative git repo
  2. Pull dependency artifacts: Most Java/OSGI code bases have a large number of dependencies managed by maven. During build the artifacts (usually binary jars) for those dependencies are pulled from a Development Nexus Artifact Repository.
  3. Hack code: contributor hacks on the code
  4. Push code: Contributor pushes code to the pending changes HEAD:refs/for/<branch> for code review
  5. Trigger Jenkins Verification:
  6. Runs CI: Jenkin’s runs Continuous Integration (builds,tests, static analysis, etc… whatever the project has decided is needful for the health of the code base)
  7. Indicates patch verified: Presuming everything checks out OK, Jenkin’s indicates to Gerrit the patch is verified
  8. Get patch to review: A committer picks up the patch for consideration
  9. Reviews patch: committer determines whether the patch looks like a good idea
  10. Submits patch: committer indicates to Gerrit that the patch is should be submitted to the <branch>
  11. Merge patch into <branch>: Now that the patch is both approved and verified, Gerrit merges it into the branch
  12. Trigger Jenkins Merge CI: Jenkins is triggered to run the CI on the result of the merge
  13. Run's Merge CI: Jenkin’s kicks off the builds for the new artifacts that will need to be in the Development Nexus Artifact Repo
  14. Upload new artifacts: If builds (and possible other CI tasks) are successful, Jenkin’s uploads the new artifacts to the Development Nexus Artifact Repo