Committer Responsibilities 

Committers are more than contributors. While it's important for committers to maintain standing by committing code, their key role is to build and foster a healthy and active community. This means that committers should 

  • Review PRs in a timely and reliable fashion
    • They should also help to actively whittle down the PR backlog
  • Answering questions (i.e. on the dev list, in PRs, in Jiras,, etc.)
  • Taking on core changes/bugs/feature requests
    • Some changes are important enough that a committer needs to ensure it gets done. This is especially the case if some one from the community is taking it on.
  • Improving processes and tooling
  • Refactoring code, etc.

Commit Policy

Commits need a +1 vote from a committer who is not the author


Style Guide

Before merging a PR, please make sure that it is compliant with the points from the Contributors' Guide, in particular:

  • The PR title references a JIRA issue [GOBBLIN-XXX], where XXX is the JIRA number, and contains a JIRA link in the PR description
  • Any new files have an Apache License header
  • All commits follow the 7 rules of good Git commits and reference a JIRA issue if appropriate

Using the Gobblin PR Tool

The Gobblin PR Tool is a script that makes working with GitHub PRs easy. It has a number of functions for testing PRs locally, merging them to Gobblin master, and closing related JIRA issues.

The most recent version of the PR Tool's documentation is available here.

Suggested Workflow

  1. Start by navigating to the gobblin/dev directory and running the PR tool to print its help screen:

    # move to gobblin directory
    cd /path/to/gobblin
    dev/gobblin-pr --help 

  2. If you have not already done so, setup the git remotes

    dev/gobblin-pr setup-git-remotes

  3. Check out a PR to your local machine for testing. The PR tool will pause after the PR is checked out; when resumed it will delete the PR and restore your original environment:

    # XXX is the GitHub PR number, for example 23
    dev/gobblin-pr work-local XXX

  4. Merge a PR to Gobblin master. This command will also prompt you to close related JIRA issues:

    # XXX is the GitHub PR number, for example 23
    dev/gobblin-pr merge XXX

Merging PRs by Hand


You should no longer need to merge anything by hand. The tool above is awesome and does a lot more than the steps below. If for some reason, that tool get broken in the future, you will need to merge by hand as described below.  


Step 1: Clone the Apache Gobblin Git Repo

git clone

Step 2: Add a remote for the github Work-in-progress 

Step 3: Display Remotes

$ git remote -v
apache (fetch)
apache (push)
origin (fetch)
origin (push)

Step 4: Pick a PR

Step 5: Make sure Local Master is up-to-date
git checkout master
git pull -r

Step 6: Fetch the PR into a branch named after the PR number (e.g. 2020)

git fetch origin pull/2020/head:2020

Step 7: Merge that branch into your current master

git merge 2020


Make sure that the PR to be merged has been squashed, and the comment of the commit starts with the GOBBLIN JIRA number (e.g. `[GOBBLIN-168] Standardize Github PR template for Gobblin`). Also, ensure that the JIRA references the PR in the "external_issue_url" so that the PR gets closed automatically when you merge.

Step 8: Run relevant tests

Step 9: Push local master to apache master
git push apache master
(this will get mirrored to github master)

Step 10: What happens next?
  • Sub-Step A: You will noticed that the ASFGIT bot will automatically close your PR as merged
  • Sub-Step B: Close the JIRA

Note : I maintain my fork in a different work space – IMHO more than 2 remotes can lead to silly mistakes.

References for Committers 

  • No labels