Chris Lowis by Chris Lowis

Week 434

While Chris R was away on a well-deserved break in Barcelona this week, James & I continued with our project to refactor and standardise Manuals Publisher for our client GDS, although I had to take a couple of days out to deal with plumbing issues.

James and I decided to work together from some of the TOG offices around Kings Cross. We tried both the Stanley Building and the Kings Cross East Side co-working locations.


We merged 11 pull requests this week.

A number of these pull requests were related to isolating the code which talks to the Publishing API behind an adaptor. James made this refactoring easier by introducing some integration-level tests to ensure that whatever we did to the code still resulted in the correct requests being made to the API. This allowed us to inline some code into the newly introduced class and simplify it.

Rails projects often adopt a “presenter” pattern which takes a model instance and allows it to be serialised to HTML and other formats depending on the context of where it is used. We converted some of the existing “renderers” in the code base to a style of presenter object that is common in other applications at GDS. This allowed us to simplify the code and remove some indirection.

We also took time to make sure our code linting behaved the same way in development as it does on the continuous integration server.

A recent change to how Github pull request reviews work slightly hampered our workflow this week. We’re used to rebasing a pull request against master and force-pushing before merging it using the “merge” button in the Github UI. The recent change means that when Github detects the “new” commits (their SHA has changed after rebasing), it dismisses any existing review. This seems like a sensible thing to do in certain stricter context, but we found it slightly awkward to have to constantly request a “re-review” when merging a large number of pull requests. It turns out that this behaviour is configurable by an organisation administrator, so we’ll investigate whether we can have it turned off next week.


  • We hosted our monthly Show and Tell event on Wednesday evening.
  • We decided to join SolidFund - the Worker Coop Solidarity Fund. SolidFund makes grants available to organisations that support cooperatives, helps coops who land on hard times generally supports industrial democracy and collective ownership. The decisions about how the collective money should be distributed are made by members.
  • We helped test a new community discussion group for CoTech. There’s already been a lot of interesting discussion on the site, and we’ve been impressed with how well the software seems to work. CoTech is self-hosting the open source version of the Discourse software. The hard work was done by our friends at WebArchitects. If you need help with a similar installation, be sure to look them up.

If you have any feedback on this article, please get in touch!

Historical comments can be found here.