1 of 80

Git Good: Using Github for Collaboration in Open Source Communities

Hari Sood, Sophia Batchelor, and Anne Lee Steele, Esther Plomp

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

2 of 80

Introductions

https://github.com/alan-turing-institute/the-turing-way, <personal twitter>, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.<update>

Hari Sood

Research Application Manager

Alan Turing Institute

Core Contributor,

The Turing Way

Anne Lee Steele �Community Manager,

Alan Turing Institute

The Turing Way

Sophia Batchelor

Community Manager

Alan Turing Institute

Core Contributor, �The Turing Way

​

Esther Plomp�Data Steward, �Delft University of Technology, TNW. Core Contributor

The Turing Way

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

3 of 80

  1. What is The Turing Way?
  2. Github Workshop
  3. Contributing to The Turing Way
  4. Celebrations

​

https://github.com/alan-turing-institute/the-turing-way, <personal twitter>, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.<update>

Overview

​

4 of 80

https://github.com/alan-turing-institute/the-turing-way, <personal twitter>, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.<update>

  • What is The Turing Way?
  • Github Workshop
  • Contributing to The Turing Way
  • Celebrations

​

Overview

​

5 of 80

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

The Alan Turing Institute

​

Established in 2015 as the National Institute for Data Science and AI

​

  • Advanced world-class research and apply it to real-world problems
  • Train the leaders of the future
  • Lead the public conversation

The Alan Turing Institute

​

6 of 80

The Turing Way

​

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

A Book

​

A Global Community

​

An Open Source Project

​

A Culture of Collaboration

​

An Open Source guide on Data Science

We involve and support a diverse community to make data science reproducible, ethical, collaborative and inclusive for everyone

​

​

7 of 80

What is open source?

  • Roots in free software movement
  • Licensing allowed for modifications and derived works
  • Developed into free and open source software (F/OSS) movement
  • Influenced ‘open’ movements: open knowledge, open data, �open access, open science

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

8 of 80

The Turing Way Guides

​

​

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Reproducibility

Project Design

Communication

Collaboration

Ethical Research

Community Handbook

9 of 80

The Turing Way

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

2021

Project growth, 134+ chapters citation in peer reviewed articles, government reports and policies, new projects emerged as extension. 309 contributors

​

2018

Proposal by Kirstie Whitaker approved

​

2019

2020

Book Dash 2020,�Project expanded to five guides,

Community Handbook, social media, Translation started. 238 contributors.

Book launched with 10 members, 3 chapters, many workshops, 2 Book Dashes. Year ended with Several chapters by 67 contributors

Logo was designed with Scriberia

2022

250+ live chapters, 340+ contributors, 3000+ Twitter followers, 3000+ monthly visitors of the five guides.

�2 project leads, a community manager, 10+ part paid staff, volunteer members, 4 translation and localisation leads.

10 of 80

How we practice collaborative open source

Tools

​

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Practices

​

Systems

​

11 of 80

The Turing Way: Tools

Open Knowledge Management

Publication & citation

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Community engagement

Acknowledgement

12 of 80

The Turing Way: Practices

Community support

Review & Verification

Maintenance

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Localisation

13 of 80

The Turing Way: Systems

Open Research infrastructure

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Community infrastructure

Network infrastructure

14 of 80

The Turing Way: Systems

Open Research infrastructure

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Community infrastructure

Network infrastructure

15 of 80

Key Practices for Collaboration

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Develop & share

Share resources

Review and update

Maintain & improve

Make it global

Share best practices

16 of 80

Key Practices for Collaboration

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Develop & share

Share resources

Review and update

Maintain & improve

Make it global

Share best practices

17 of 80

Thanks to our community of contributors & users!

18 of 80

PAUSE!!!

Any questions?

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

19 of 80

https://github.com/alan-turing-institute/the-turing-way, <personal twitter>, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.<update>

  • What is The Turing Way?
  • Github Workshop
  • Contributing to The Turing Way
  • Celebrations

Overview

​

20 of 80

Let’s Git Good:

  • Why use GitHub?
  • What is GitHub?
  • Exercise: creating a repository
  • Writing in Markdown
  • Exercise: editing a GitHub page and making a PR
  • Exercise: Contribute to The Turing Way!

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

21 of 80

Why use GitHub within your community?

  • Collaborative documentation
  • Version Control
  • Transparency & accountability
  • Attribution for contributions
  • Project management

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

22 of 80

Collaborative

Documents

Image. The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

There are challenges in developing collaborative documents...

​

​

23 of 80

Collaborative

Documents

Image. The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

There are challenges in developing collaborative documents…

​

  • Asynchronous and conflicting edits, location, time zones, and

VERSIONS!

​

24 of 80

Images from Mozilla Science Lab, Illustration by Scriberia and The Turing Way

25 of 80

Image from Mozilla Science Lab: https://mozillascience.github.io/study-group-orientation/3.1-collab-vers-github.html

Revisions and Versions

26 of 80

Images from Mozilla Science Lab, Illustration by Scriberia and The Turing Way

27 of 80

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

28 of 80

Collaboration on GitHub

Image from Mozilla Science Lab: https://mozillascience.github.io/study-group-orientation/3.1-collab-vers-github.html

29 of 80

  • hosts your repositories (projects) online
  • helps you work with contributors/collaborators
  • provides web interface for version control
  • it can be used for project management and communication
  • useful for any project where a group of people are working together

30 of 80

Let’s dive in and set up our first repo…

GitHub Exercise 1.

31 of 80

PAUSE!!!

Do you have a GitHub Account?

​

Go to https://github.com/

​

  • Create an account using the sign up
  • Login

​

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

32 of 80

PAUSE!!!

Make sure your GitHub username is �in the EtherPad:

https://pad.carpentries.org/cc2022-git-good

​

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

33 of 80

Creating a Repo.

​

​

“trial-repo”

​

Repository (Repo)

​

A project where all your files are, online or on your computer

34 of 80

Creating a Repo.

​

​

“trial-repo”

​

Repository (Repo)

​

A project where all your files are, online or on your computer

35 of 80

Markdown (.md) for formatting

Markdown: what’s that?

Markdown is a simple text “markup” language made for quickly writing formatted text

​

Great for blogs, documentation, and even writing papers.

​

You may have used it in HackMD.

36 of 80

Markdown (.md) for formatting

Create a README file

  • Landing page for your repo
  • Information about your project
  • List tasks of varying expertise clearly
  • Add names/ids of your collaborators
  • Invite others with specific skills

…let’s write it in style with Markdown

37 of 80

GitHub Exercise: Creating a README

Write whatever you would like!

​

  • About the project
  • Today’s date
  • A hello world message!

​

​

…remember to title your file README.md to indicate the markdown file type.

38 of 80

You created your first repo.

CONGRATS!!

Slide by Sophia Batchelor, https://zenodo.org/record/5070361, https://tenor.com/view/flower-power-rainbow-yeah-gif-7304860

39 of 80

GitHub Vocab

  • Commit
  • Branch & Fork
  • Pull request
  • Merge

40 of 80

Commit

​

Saving a version of file(s)

​

  • ‘commit’ changes with message (i.e.‘My first commit’)

​

41 of 80

Branch & Fork

​

  • Branch: pointers to a specific commit in your repo, temporary places to work through a feature ← you have write access

42 of 80

Branch & Fork

​

  • Branch: pointers to a specific commit in your repo, temporary places to work through a feature ← you have write access
  • Fork: copy of repo that is an entirely independent repo ← no need of write access or intent to merge with the main

43 of 80

Fork & Pull Request.

If you don’t own a repo and aren’t an official collaborator:

    • you will Fork a repo
    • work on your forked copy of the repo
    • make a Pull Request for the changes you’ve made
    • author/owner will decide to merge them in.
    • Make friends + Big party!

44 of 80

Pull Request & Merge

​

Pull request

request to add your changes from a branch back into main.

Merge

act of incorporating new changes (commits) from one branch to another.

45 of 80

Pull Request & Merge

​

Pull request

request to add your changes from a branch back into main.

Merge

act of incorporating new changes (commits) from one branch to another.

46 of 80

Pull Request (PR) - 1

​

Task 1: Edit the file with your details and create a new branch.

Your branch

Your branch

47 of 80

Pull Request (PR) - 2

​

Task 2: Submit a Pull Request of your branch to main.

Your branch

Your branch

48 of 80

Let’s edit a page and submit a Pull Request (PR).

GitHub Exercise 2.

49 of 80

PAUSE!!!

Any questions?

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

50 of 80

Merge

​

  • Merge: combining the work from two different branches together after review

51 of 80

Merge

​

  • Merge: combining the work from two different branches together after review

52 of 80

Review: Demo ☀️

Users with write access can approve and merge PRs

53 of 80

PAUSE!!!

Any questions?

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

54 of 80

54

Let’s Take a Break

See you in 05:00 Minutes

https://cuckoo.team/ttw-carpentrycon

55 of 80

PAUSE!!!

MERGE CONFLICT!!

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

56 of 80

What we’ve done �so far…

Image. The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

  • Introduction to using Github
    • Collaborative Documentation
    • Version Control, Git
    • Markdown format
    • Commit, Branch & Fork, Pull Request, Merging and Merge conflict.
  • Making your first repository
  • Merged your first pull request! 🚀

57 of 80

https://github.com/alan-turing-institute/the-turing-way, <personal twitter>, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.<update>

  • What is The Turing Way?
  • Github Workshop
  • Contributing to The Turing Way
  • Celebrations

Overview

​

You should have received an invite to the repository!

58 of 80

Contributing to �Open Source Projects

Image. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

It’s hard work!

​

What is your experience with contributing to open source projects?

59 of 80

Issue vs Pull Request (PR)

​

  • With a issues, you can propose ideas for possible changes, and invite discussions before you make a PR (or do something else).
  • With a pull request, you can propose changes, discuss, and iterate on before you merge the changes into the project.

60 of 80

Using Issue & PR Features

​

  • Different contributors can see what you are working on and offer help, share thoughts or learn from your work.
  • Provide sufficient details, respond patiently, accept constructive feedback and invite collaboration.

61 of 80

Contributing to The Turing Way

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

62 of 80

The Turing Way: Github Repository

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

We will be editing this together!

63 of 80

The Turing Way: Github Repository

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Community standards

Learn more about the project here

Learn more about contributing to the project

Community contributors

64 of 80

Contributing to The Turing Way: Issues

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

65 of 80

Contributing to The Turing Way: Making a Pull Request

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Issue

Propose Changes

66 of 80

Contributing to The Turing Way: Making a Pull Request

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Draft Pull Request

Create Pull Request

67 of 80

Contributing to The Turing Way: Issues & Pull Requests

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6951699.

Review Pull Request

Merge changes!

68 of 80

Contributing to The Turing Way: DEMO!

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

Image. The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

69 of 80

PAUSE!!!

Any questions?

Slide by Sophia Batchelor, https://zenodo.org/record/5070361

70 of 80

Let’s dive in!

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

https://pad.carpentries.org/cc2022-git-good

  • You’ll each be added to a breakout room in groups: your breakout room number is on the etherpad
  • There is one issue assigned to each room
  • Have a go at resolving the issues! We’ll be rotating through the rooms if you get stuck

If you finish early, feel free to find an issue you’re interested in working on: and get started!

71 of 80

Tips for the breakout rooms:

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

https://pad.carpentries.org/cc2022-git-good

  • Add a comment to the issue with who is working on it (remember to add their Github usernames with an @ sign!)
  • 1 person making the PR
  • Link the associated issue

​

Main room: for anyone who missed a part of the workshop!

​

​

72 of 80

https://github.com/alan-turing-institute/the-turing-way, <personal twitter>, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.<update>

  • What is The Turing Way?
  • Github Workshop
  • Contributing to The Turing Way
  • Celebrations

Overview

​

73 of 80

So you’ve learned how to contribute to an open source project…

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

74 of 80

What we’ve accomplished

Image. The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

  • Introduction to Github
  • Made first repository!
  • Contributed to 2 repositories!
  • Fixings bugs in The Turing Way!

​

​

🎉 Congratulations! 🎉

​

75 of 80

Next steps

Image. The Turing Way project illustration by Scriberia. Used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807.

  • This week, we’ll be reviewing your pull requests:
    • Tags for ‘all-contributors’ bot
    • Reviewing + accepting changes (and fixing any merge conflicts!)
    • Remember to login + accept your merge requests
  • Adding you to the contributor table: https://github.com/alan-turing-institute/the-turing-way#contributors

​

Keep in touch with The Turing Way community!

76 of 80

Join a Community Event

- Collaboration Cafes

      • 1st & 3rd Wednesdays (14:00 UTC)

- Coworking Calls

      • Mondays (10:00 UTC)

- Fireside Chats

- Book Dash

- Community Share-out

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6997522.

bit.ly/turingway

77 of 80

Get involved with the community

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6951699.

  • Slack workspace
  • PR / Issue on Github
  • Community events

bit.ly/turingway

https://zenodo.org/record/3332807

78 of 80

Acknowledgements:

​

Stay in Touch

–  Book: the-turing-way.netlify.com

–  Mastodon: https://fosstodon.org/@turingway

  • GitHub: github.com/alan-turing-institute/the-turing-way
  • Original artwork by Scriberia: https://doi.org/10.5281/zenodo.3332807

Contact us: e.plomp@tudelft.nl, hsood@turing.ac.uk, sbatchelor@turing.ac.uk, asteele@turing.ac.uk

​

​

@turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6951699.

79 of 80

Thanks to our community of contributors & users!

80 of 80

Key Practices for Collaboration

https://github.com/alan-turing-institute/the-turing-way, @turingway, CC-BY 4.0, DOI: 10.5281/zenodo.6951699.

Develop & share

Share resources

Review and update

Maintain & improve

Make it global

Share best practices