Skip to content

Using GitHub and Travis for ODP Development

Matias Elo edited this page Mar 1, 2019 · 12 revisions


  1. Main ODP Repo:
  2. Maxim's Intro Presentation from BUD17

GitHub Setup (only need to do this once)

  1. Create Github account (if needed)
  2. Login to your GitHub account.
  3. Go to the ODP Git Repo:
  4. Use the Fork Button to create a fork in your GitHub account

Travis Setup (only need to do this once)

  1. Login to travis ( using your GitHub userid/password. Or gmail login if you use gmail to login to github.
  2. From your profile page ( flip the switch activating Travis for your ODP fork.

At this point, whenever you push to your fork, Travis will run regressions on it and give you a report of any problems with your patches.

Creating a working clone

  1. From your Linux development system create a clone of your fork of ODP
git clone<yourgithubname>/odp myodp.git
cd myodp.git
  1. Create a remote to track the main ODP repo:
git remote add upstream

You can add other remotes as needed if you want to work with forks owned by other team members. The name of the remote is of your choosing.

After you do this: git remote -v shows:

origin:<yourgithubname>odp.git (fetch)

origin:<yourgithubname>odp.git (push)

upstream: (fetch)

upstream: (push)

Updating your fork

git pull upstream master
git rebase

Creating a new branch for development and Pushing commits to your fork

It's recommended to have separate branch for each developed feature. Then create pull request for that branch. Like branch master_bug_123 --> OpenDataPlane/odp.git/master, other work can be in separate pull request and in separate branch like master_feature_a --> OpenDataPlane/odp.git/master

Creating a Pull Request

There is no any difference between ODP and any other project hosted on github. To create it you need to open your ODP clone web page and click button Create pull request. For more detail refer to github official documentation:

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.