Working on Ceph without GitHub (episode 3/3)

Note: See also episode 1 and episode 2.


Shortly after being blocked because the test cluster was overloaded, Josh reviewed and approved the proposed pull request, asking for a trivial change. I made the change and asked one more time that Nathan acts as a proxy to push it as an update to the pull request.

Kefu included the pull request into his test run and noticed a bug which he kindly reported to the mailing list, because he knows I don’t have a GitHub account and would not otherwise be notified. He even went as far as to fix the problem and ask for my permission to squash it into my commit.

Nathan, Josh and Kefu then discussed the appropriate level of testing on GitHub and my intervention was not required. A few days later, the pull request was merged and the associated issue closed.

This showcase benefited from Nathan, Josh and Kefu’s good will and efforts: they went out of their way to make it possible (round of applause). Such a simple contribution is not expected to require so many participants, so much interactions and so many manual operations. To summarize, here is what happened:

Here is what typically happens when someone who has a GitHub account makes a contribution:

  • They create a pull request with their contribution
  • The reviewer comments on the pull request
  • The contributor addresses the comments and push the updates to the pull request
  • The tester runs an integration test including the contribution
  • The pull request is merged by the tester who also closes the issue

It’s not very rigid but it’s more or less what happens. The difference between the two workflows is:

  • There is no need for a proxy (Nathan in this showcase)
  • The tester does not need to send notifications to additional communications channels (Kefu in this showcase)
  • Changes do not need to be pulled and pushed twice (Nathan again)
  • The contributor is able to participate in all discussions (the final exchange between Kefu, Josh & Nathan in this showcase)

The goal of this story was to demonstrate, with an actual example, the additional work and the communication delays when a Free Software developer contributes to a project that lives on a forge where they do not have an account (for whatever reason).