Skip to content

How to submit Sync Gateway pull requests

Traun Leyden edited this page Dec 12, 2017 · 3 revisions

This doc assumes that:

  1. You have the ability to push branches to the Sync Gateway github repo
  2. You are changing both Sync Gateway and a dependent repo (eg, Blip).

Required steps for dependent repo

  1. Create a branch off of master, typically these are named feature/issue_xyz_description, for example: feature/issue_3136_blip_compression
  2. Make your changes
  3. Push your branch up to github
  4. If a lot of time has passed between creating the feature branch and the time when you are about to push it, you should do a git pull --rebase to rebase your branch off of the latest master branch.
  5. Open a PR against your branch on the dependent repo

Required steps for Sync Gateway repo

  1. Repeat steps 1-4 from the "Required steps for dependent repo", but on the Sync Gateway repo.
    1. NOTE: you can use the same name for the Sync Gateway branch as you used on the dependent repo, or change the issue number in the branch name to match the Sync Gateway issue number, just make sure it's clear from the branch name which issue is being addressed. Typically you'll have a single Sync Gateway issue and recycle that issue ID on dependent repos.
  2. Update the manifest/default.xml to point to the latest commit of your feature branch for the dependent repo. From the example above, that would be the latest commit on feature/issue_3136_blip_compression.
    1. If you're adding a brand new dependency, you will have to make additional changes to manifest/default.xml to add a new dependent repo.
  3. Push the updated manifest/default.xml to your feature branch on github
  4. Open a PR against your branch on the Sync Gateway repo
  5. A Drone CI build will be kicked off automatically that will build the code and run the unit tests against Walrus.
  6. If the Drone CI build succeeds, then assign the PR to a reviewer. (note: the status of the Drone CI build will be in the PR)

Optional steps

  1. Kick off the integration tests on http://uberjenkins.sc.couchbase.com/view/Build/job/sync-gateway-integration-master/build?delay=0sec
  2. Kick off the code coverage build on http://uberjenkins.sc.couchbase.com/view/Build/job/sync-gateway-coverage/
Clone this wiki locally