Git Product home page Git Product logo

Comments (10)

ostephens avatar ostephens commented on August 22, 2024

I think that GitHub repo contains the full text of the original Thinkful tutorial? Is this the right information: https://github.com/Thinkful/guide-github-pull-request/blob/master/index.md#time-to-submit-your-first-pr

from lc-git.

jas58 avatar jas58 commented on August 22, 2024

from lc-git.

tobyhodges avatar tobyhodges commented on August 22, 2024

Indeed, the link pointing to an outdated GitHub Guides URL* indicates that the Thinkful repository is no longer a great resource for the lesson to use. I would suggest a fix there, but the repository has been archived and no longer accepts pull requests.

With that in mind, I suggest that the optional exercise needs a larger redesign, or otherwise should be removed. When I have taught Git, GitHub, and contributing to someone else's repository in the past, I have taken the approach of pairing up learners and demonstrating the steps they need to take to contribute to each other's repositories. One option would be to replace this optional exercise with something similar, where the Instructor can pair learners up and give them the steps to follow to open a pull request on their partner's repository**.

One downside to this is that it is only designed to work in a workshop setting and would not be accessible to learners following the lesson alone. However, the nature of the exercise is such that two people are required - the submitter (learner) who opens the pull request and the maintainer who receives and can merge it - and it may not be possible for us to provide a sustainable framework that would allow self-directed learners to practice this workflow. (E.g. given that the Thinkful repository was archived with >300 open pull requests, I suspect maintaining such an example repository can be a heavy burden.)

* @jas58 if you still want to read it, I believe the correct link to the guide on GitHub Flow is https://docs.github.com/en/get-started/quickstart/github-flow#following-github-flow. I can also recommend the Pull Requests episode of the extended version of the Software Carpentry Version Control with Git lesson in The Carpentries Incubator by @sstevens2.
** The Carpentries Curriculum Team is working on some automated approaches to create example repositories for use in teaching, which could prove helpful for an exercise like this, but I do not expect it to be ready for another few months.

from lc-git.

ostephens avatar ostephens commented on August 22, 2024

I think the immediate solution would be to either:

  1. remove the optional exercise
  2. substitute an alternative link - but I don't know the lesson well enough to know what that might be (maybe the one I found, or maybe the one suggested by @tobyhodges)

Both straightforward fixes apart from deciding the best link in (2)

from lc-git.

tobyhodges avatar tobyhodges commented on August 22, 2024

I've been looking around a bit, and so far the best resource I have found for this is the GitHub Guide to Contributing to Projects. It does not include the step to create a branch for the changes that are being made (i.e. it does not follow GitHub Flow), but it does guide the reader through the steps of forking, cloning, adding, committing, pushing, and opening a pull request. In my opinion it is better practice to make changes on a new branch, so perhaps a note could be added to the exercise text to suggest this, if linking out to this guide.

from lc-git.

jas58 avatar jas58 commented on August 22, 2024

from lc-git.

tobyhodges avatar tobyhodges commented on August 22, 2024

@jas58 I'm afraid I do not think either option is feasible:

@sstevens2's lesson is in The Carpentries Incubator i.e. it is maintained by her rather than Software Carpentry (her lesson is using the Software Carpentry styling, which can be misleading), and due to time constraints I do not anticipate any extra content on branches and pull requests being incorporated into the official SWC lesson any time soon.

The LC lesson could link to Sarah's lesson but, as that project is maintained only by one person (albeit one as amazing as @sstevens2!), there is always the risk that that lesson will also become outdated or disappear. This is exactly what has happened with the Thinkful tutorial that was originally linked.

I think the safest option is to link to a guide that is maintained by someone with a strong interest in keeping it up-to-date. My preference is to link to an updated version of GitHub's guide, that includes a step to create a new branch after cloning. I have opened an issue to suggest the change and I hope the maintainers will agree. If and when that guide is improved, I will open a pull request here to update the link in the optional exercise.

from lc-git.

jas58 avatar jas58 commented on August 22, 2024

from lc-git.

tobyhodges avatar tobyhodges commented on August 22, 2024

My suggested change to GitHub's guide was accepted so I have opened #131 to replace the broken Thinkful link.

from lc-git.

emcaulay avatar emcaulay commented on August 22, 2024

Thank you all for the research and discussion here. I am sorry I did not participate earlier.

@jas58 , your recognition of this problem is very HELPFUL! Thank you for sticking through the discussion! @ostephens , thank you for your review and @tobyhodges thank you for digging all the way in and solving the problem!

from lc-git.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.