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