GitHub Clinic
Contributing from the browser
Champions Program
CC By Openscapes
Artwork by Allison Horst
Last updated 2022-10-21; deprecated. Current version
1
Today’s Goals
2
We won’t cover local git/GitHub setup/workflows today.
Excellent resources to learn more:
3
Growth Mindset
you develop abilities through practice
fixed mindset, where abilities are static
Illustrations from “GitHub for supporting, contributing, and failing safely”
“Collaboration is the most compelling reason to manage a project with Git and GitHub”
(Bryan 2017, PeerJ, “Excuse Me, Do You Have a Moment to Talk About Version Control”)
–> To introduce GitHub, we can use the idea of climbing
5
6
7
GitHub “commits” help us focus on the work, not the bookkeeping
It takes care of otherwise time-consuming versioning and unrelenting file tracking.
8
GitHub “Issues” helps us support others and existing work
It helps us with organizing, improving documentation, asking and answering questions - critical to all projects whether we’re writing code or not.
What is GitHub? – traditional answer
9
What is GitHub? – nontraditional answer
10
Annual reports
Shared todo’s
GitHub framework in a nutshell
nmfs-openscapes
through GitHub
Let’s explore a repo and commit a change →
11
Above, NMFS-Openscapes is the organization with the 2022-noaa-afsc-fall repository. This repo has 2 files. The most recent commit was made by EmilyMarkowitz-NOAA (a user) 11 days ago: they updated the README.md file.
repo
org
org
repo
GitHub repo
orientation
(demo)
12
URL (changes as you navigate)
[user or org] / repo (doesn’t change)
Files and folders
Recent activity?
website
Scroll down for README
Let’s edit files from GitHub (demo)
In our Cohort repo
Note: editing from the browser is limiting – your main workflow will be to sync the repo to your local computer. However, you will sometimes edit in the browser, and it’s a no-install-required way to onboard new people to GitHub
13
Click pencil to edit
Write! Supports Markdown formatting
Scroll down to commit!
Markdown is a formatting language with only about 15 rules. Notice syntax for # headers and *italics*
(see cheatsheet)
Your turn: practice editing & committing
Goals: practice committing work in GitHub
14
Review together after breakout rooms (demo)
15
Good project management
a strategy used by software developers
and people working on projects with many moving parts
16
GitHub Issues in the wild
17
Open software peer review
Bug reports, code, feature, & help requests
Event crowdsourcing and planning
“traditional” and “less traditional”
🎉
Explore GitHub Issues (demo)
Let’s go to our Cohort’s repository > Issues
18
Your turn: practice creating & commenting on issues
Goals: practice using Issues for collaboration, Markdown practice
19
Regroup
Here’s what your inbox will look like afterwards:
20
This is pretty rare to receive so many Issues emails all at once.
But you can switch your setting so that you only receive emails about Issues that you are tagged in. Click on Watch in the top right:
GitHub Organizations & Projects examples:
21
Project Boards for Issues (kanban board)
Project has a mix of public & private Issues
Organizations for skillsharing and teaching
GitHub has a built-in viewer
22
View your repo as a website!
username.github.io/reponame/
nmfs-openscapes/2022-noaa-nwfsc-fall/github-clinic/yourfile
23
Extra slides
24
GitHub Issues in the wild
25
Private conversations and archiving
Bug reports, code, feature, & help requests
Event submissions and coordination
“traditional” and “less traditional”
Explore GitHub Issues (demo)
Let’s go to our Cohort’s repository > Issues
26
Strategies for Issues
27
28
So far, we’ve been working on GitHub.com, where we contribute changes through commits
When we work elsewhere, to contribute we stage, commit then push back to GitHub.com
Stage and Commit your changes after saving
*
*(or JupyterHub)
To get our work elsewhere we clone the first time and thereafter pull any updates from GitHub.com
Pull, commit, push together is called syncing
GitHub syncing
29
To contribute back to GitHub.com from your local or cloud setup:
30
Jenny Bryan, Code Smells and Feels
GitHub is collaborative software designed to organize interrelated files and to track changes by potentially different people through time - not limited to code.
31
Illustrations from “GitHub for supporting, contributing, and failing safely”
32
GitHub helps us reuse
GitHub helps us reuse existing work, which lets us learn and build from other people’s shared experience rather than reinventing on our own.
GitHub helps us fail safely
Because we can return to previous versions easily, painful consequences of failing are reduced. We can more bravely try things and start making contributions.
GitHub repo
orientation
(demo)
Let’s go to our cohort repo.
Every GitHub repo looks the same.
Here’s the first things to look for:
33
URL (changes as you navigate)
[user or org] / repo (doesn’t change)
Files and folders
Recent activity?
website
Scroll down for README
GitHub repos & issues examples
34
Shared, running list of resources we find useful