ProjectPythia/pythia-foundations

Intro to GitHub content

Closed this issue · 35 comments

clyne commented

Foundations is currently missing "intro to GitHub" content here.

Source material for this? Drop useful links here?

Would be good to incorporate this reference https://guides.github.com/activities/hello-world/

Unidata Python Training site has a list of several existing resources: https://unidata.github.io/python-training/python/intro-to-python/

I'm going to assign this issue to myself and @ktyle because we've had some offline discussions about developing some "Intro to GitHub" material for Kevin's class that's starting next week.

clyne commented

@ktyle , @brian-rose, the Earth Cube Technology and Architecture committee has expressed interest in using this notebook for an internal proposal they are submitting to support Jupyter Lab hackathons. They (the TAC) want to know if it could be ready by end of October. What are your thoughts?

ktyle commented

@clyne the GitHub course material I've used in the class is not notebook-based ... I've slightly modified the content that is used in The Carpentries git-novice lesson and covered the first 9 "episodes" in the second and third weeks of this current semester. Throughout the rest of the semester, I have students use Git to push their assignments to the class GitHub space. Note that I don't devote any time to discuss pull requests, although I may work that in later this semester.

Regarding your specific question, I think I'd need to hear a bit more about what the intent of the TAC proposal is. Are they looking to use GitHub for hackathon attendees?

clyne commented

@ktyle the details of the TAC proposal are a little vague, but the basic idea is that TAC would solicit requests for hackathons around developing Python content in Notebooks. A service that TAC would provide to support these hackathons is training on technologies needed to develop and share notebooks. What's in it for us? Exposure for the project and an opportunity to get feedback from the TAC and possibly the hackathon organizers.

ktyle commented

@clyne We didn't get chance to discuss today, but has a decision been made about the TAC hackathons?

clyne commented

We were supposed to hear by yesterday, but apparently they are still deliberating. I'd expect we'll know in a day or two.

At the EWG today we struck ad-hoc "GitHub Gang" group to put heads together on this content in advance of the next Pythia hackathon.

clyne commented

Notes from brainstorming session:

BR: suggested outline
What is GH and why use it (and relation to Git)?
How create an account
What can you do with GH (first steps), quick start to getting involved
Contribute to discussion pages
browse/comment on issues
add a link to our gallery
More powerful things that can be done with GitHub + Git (overview)
Painful necessities (Prerequisites for more powerful things with GH + Git)
Authentication credentials
Some knowledge of git
Specific things you can do once you master painful necessities:
Forking a repo, version control
Sharing your work so you can collaborate

Brainstorming ideas:
Do we create a dummy repo that anyone can experiment with? Consider it a “Safe Space for community participation”
BR states as an overall motivator: “A common misconception by users who want to participate in an open source project using Github is that they feel they need to be a technical expert on performing version control with a program like git”

@ktyle will take a first pass at setting up section headings for this in the first part of today's hackathon.

Once we have that in place, we can more usefully divide up the rest of the work of creating the content.

clyne commented

We got word today that the TAC hackathon proposal was awarded. I will reach out about a more reasonable target date for having a draft of out GitHub content in place.

clyne commented

The deadline for the draft GitHub content is November 30.

cc: @ktyle , @brian-rose

Just updating this thread. With #169 merged, we have a coherent outline in place. The big need now is to actually flesh out content for some of these sections in Foundations.

Let's try to discuss strategy for this at the beginning of today's hackathon.

Our current action plan is as follows:

Once the first few parts are in place, that should set the scene for more advanced parts and we can distribute some of the work around the team.

clyne commented

@SimonGoring perhaps you can view the extended outline that is now live here

and provide feedback that would help us prioritize the remaining GitHub chapters for the TAC hackathons

After reading what @ktyle has written for Part 1 in #192 , it looks like there's a lot of overlap with what I wrote so far for Part 2 #191 . Would it make sense to just combine these?

Is there any part of this I can help with? If anyone no longer has time for part 1, 2, or 4 or wants any amount of assistance please let me know @ktyle @r-ford @brian-rose

Update: we had a meeting today with @ktyle, @clyne, @r-ford, @jukent and myself to strategize on how to get this done quickly. Here's a few things we decided:

  • We are getting rid of the Part numbers (not needed as the sections are already ordered in the TOC)
  • @ktyle will shortly be pushing updates to parts 1 and 2. They are pretty much ready to go.
  • We are organizing lessons about forking, cloning, branching, and opening PRs around a new dummy repo https://github.com/ProjectPythia/github-sandbox. This will let us show very simple examples analogous to forking an existing public repo (like Project Pythia's own production repos) and making small changes.
  • Simplest lesson could just be fixing a typo in a simple .md file in the sandbox.
  • We divided up the work for this week as follows:
    • @r-ford: Issues and Discussions
    • @ktyle: Cloning and Forking a Repository (this is where the sandbox first gets introduced)
    • @ktyle: Advanced GitHub Setup (borrowing material from Kevin's class on setting up ssh keys)
    • @brian-rose: Basic version control with git
    • @jukent: Git branches
    • @clyne: Opening a Pull Request on GitHub
    • @r-ford: Contribute to Project Pythia via GitHub

@ProjectPythia/education please be aware that we are trying to pursue a vastly accelerated review cycle this week to get this work done. It would be extremely helpful if you can follow your notifications and respond quickly to review requests, even if just to say that you don't have time to do the review. Thanks!

ktyle commented

#192 has been renamed and contains updates to the first two lessons. We should be able to close #191 as I've incorporated @r-ford 's material for the GitHub Repositories lesson into the former PR.

Ok here's another update with some milestones. I'll list the chapter headings, indicate current status, link the relevant PRs, and check things off when they get merged.

edited with updates as of 1/19/2022
another update on 1/26/2022
and again on 2/9/2022
final edit on 2/15/2022

  • What is GitHub? merged. By @ktyle
  • GitHub repositories merged. By @ktyle and @r-ford
  • Issues and Discussions merged. By @r-ford
  • Cloning and Forking a Repository merged. by @ktyle
  • Advanced GitHub Setup merged. By @ktyle
  • Basic version control with git merged. by @brian-rose
  • Git Branches merged. by @jukent
  • Opening a Pull Request on GitHub merged. by @clyne
  • Contribute to Project Pythia via GitHub merged. By @r-ford
  • Advanced GitHub Topics we may remove this or change the title

Would advanced topics include how to avoid and resolve merge conflicts?

ktyle commented

@jukent Yes definitely!

ktyle commented

Probably a whole laundry list of potential advanced topics ...

clyne commented

Please!!!

I noticed that the Contributor’s Guide already has a detailed guide on how to "contribute to Project Pythia via GitHub." Is there anything not already there that we would want in that section of this tutorial? Maybe just a walk through actually submitting an issue or PR with screenshots?

clyne commented

I noticed that the Contributor’s Guide already has a detailed guide on how to "contribute to Project Pythia via GitHub." Is there anything not already there that we would want in that section of this tutorial? Maybe just a walk through actually submitting an issue or PR with screenshots?

There are lots of ways to "contribute" to Pythia, such as participating on the discussion forum. IMHO these lower bar contributions are covered adequately elsewhere. Perhaps this section would be a good place for an example (or two) showing how to contribute actual content (e.g. a correction to a notebook, or even a new notebook)?

clyne commented

We should to a top-to-bottom review all of the content in this book chapter before closing this issue

We should to a top-to-bottom review all of the content in this book chapter before closing this issue

Yes, I created a new issue #214 for this!

All related issues and PRs are now tagged with the "GitHub content" milestone. Hopefully that makes it easier to keep track of things.

Update 4/28/2022, based on discussion at today's EWG meeting, we will finally close this and #214 once all current PRs are merged, and pending one final read-through of the content by myself and @r-ford to look for any more inconsistencies.

clyne commented

I think we can close this lengthy issue. All of the outstanding items are included in #214.

Ok to close @brian-rose, @ktyle, @jukent ?