Learning to work openly using git and GitHub
On Friday 28th April the wonderful Bruno Vieira, my fellow Mozilla Fellow for Science was in London and we decided to run a micro Working Open Workshop (
This is in contrast to a full WOW which is a two day extravaganza and a mini WOW which is a one day event. We only had one evening but we tried to fit as much of what we knew about working open and collaborating using git and GitHub as possible.
Here’s how we described it at our eventbrite invitation:
The Working Open Workshop (or WOW) is a set of trainings created by Mozilla Science Lab to help up-and-coming leaders of open science and open research projects make the most effective open projects possible, and build active communities of contributors around them. For this micro event, we will focus on teaching how you can use Git/GitHub for collaborative work and share some best practices tips on how to build a community around your project!
We held the event in the School of Biological and Chemical Sciences of Queen Mary University of London. Thank you for hosting us QMUL!
Friendly GitHub Intro
We covered two exercises: building your first repository, and submitting and merging your first pull request. The second in particular was great fun because everyone had to pair up and be both the owner of the repository, and therefore the gatekeeper who chose whether or not to merge the request, and the contributor who wanted to suggest a new addition.
Don’t push your pull request
In this very quick introduction to working open we talked about the importance of the README welcome mat, a CODE_OF_CONDUCT, the LICENSE so others know how they can use your work, and the CONTRIBUTING file that gives guidelines to the folk who are sharing their work with you.
I want to recommend this blog post “Don’t push your pull requests” to anyone who is thinking about submitting some work to be merged into an open source project.
Building up communities around your projects is one of the most challenging and rewarding parts of building an open source project. Whether you’re the project owner or a first time contributor, remember that there are real human people working hard on the other end of that online conversation. Sending them a little love and appreciation, and communicating clearly makes all the difference .
We asked our participants at the end of the workshop what they thought. You can checkout their responses in full, but here are a few of their comments (I’ve edited them lightly for clarity):
My goal for the workshop was mainly to understand the use of git(hub) for version control…but I became more on board with the collaboration aspect over the course of the workshop.
The workshop was friendly, and I liked the fact we could chat anytime, and ask questions on the etherpad too.
I’d change the speed of the workshop, I found it too fast. It also diverged from what I wanted to learn. Some more time to play would be great (and use the experience in the room when I hit a problem myself).
100% of our participants would recommend this workshop to others!
And, as one participant wrote:
I think this is SUPER IMPORTANT! Thank you for doing it :)
I had such a wonderful time on Friday. I learned so much from Bruno and the way he runs Bionode. Check it out and feel free to use any of the materials I’ve listed here! They’re all openly licensed .
- Friendly GitHub Intro website: https://mozfellows-hack.github.io/friendly-github-intro
- Friendly GitHub Intro presentations: https://mozfellows-hack.github.io/friendly-github-intro/#presentations
- Friendly GitHub Intro repository: https://github.com/mozfellows-hack/friendly-github-intro
- Glossary of GitHub terms: https://github.com/mozfellows-hack/friendly-github-intro/blob/gh-pages/glossary.md
- Free private repositories for academics: https://education.github.com
- Markdown cheatsheet: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
- Emojis in github markdown cheatsheet: https://www.webpagefx.com/tools/emoji-cheat-sheet
- Don’t push your pull requests: https://www.igvita.com/2011/12/19/dont-push-your-pull-requests
- Templates for your issues and pull requests: https://github.com/blog/2111-issue-and-pull-request-templates
- A great tutorial on codes of conduct: https://mozillascience.github.io/working-open-workshop/code_of_conduct