Git: GitHub Issues and Pull Requests

From Foss2Serve
Revision as of 20:17, 15 August 2016 by Cmurphy (Talk | contribs)
Jump to: navigation, search
Title Name of the activity
Overview High level description of what the student will do
Prerequisite Knowledge What topics and tools does the student need to know prior to beginning this activity?
Learning Objectives What should the student be able to do after completing this activity?

Contents

Background:

Is there background reading material?

Are there other activities the student should have done first?

What is the rationale for this activity?

Include helpful hints to faculty here.

Directions:

Step 1. Create an account

If you do not already have an account, create one at github.com.

Also be sure that you have git on your local computer or have GitHub Desktop: https://desktop.github.com/

Step 2. Fork and clone repo

Make a fork of the repo at (github repo URL) into your account, then clone it onto your local computer.

Step 3. Claim an issue to work on

Go to that repo's "Issues" tab and find one that you would like to work on (some are easier than others!).

/*Is there a way in github to assign this to people?*/

To claim the issue as your own, add a comment indicating that you are working on it. Make sure you aren’t working on the same issue as someone else!

IMPORTANT NOTE! If you would like to communicate with another student or the instructor regarding the issue, you must use the IRC channel and you may not speak until the instructor has said it's okay to do so!

Step 4. Make local changes as needed

Make changes to the code for your issue in your local environment.

This shouldn't take too long but as above, if you need to communicate with another student or the instructor, you must use the IRC channel.

Step 5. Commit/push your changes to your fork

After modifying the code, commit your changes locally and then push them to your fork in GitHub.

Step 6. Submit a Pull Request

Create a new Pull Request (PR) in the (github repo url) repo from your fork.

Then add a comment in the Issue that you claimed, indicating that you have submitted a PR. Include a link to the PR.

Step 7. Wait patiently

Patiently wait in GitHub to see if your PR is merged by one of the repo owners. You may also get a follow-up comment in your Issue, or a note in IRC.

Only when your PR is merged can you consider this step "done," so don't celebrate just yet!

Deliverables:

What will the student hand in?

Assessment:

How will the activity be graded?

How will learning will be measured?

Include sample assessment questions/rubrics.

Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
Criterion 1...
Criterion 2...

Comments/Notes to Instructors:

A sample repo with 15 open issues is available at https://github.com/ChrisMurphyOnline/github-issues-activity

This particular repo assumes that students are familiar with Java and JUnit.

Feel free to fork this repo for your own course, but unfortunately I am not aware of ways to clone the issues. I have previously done this by hand (takes about 15 minutes) but there do seem to be scripts to help with this, e.g. https://github.com/IQAndreas/github-issues-import

Here are some notes about the issues in that repo:

  • issue #2: in addition to making this change, the student should add a JUnit test. The student should realize this on their own, of course, but if they do not, mention it to them (via the Issue or IRC) and do not merge the PR until a test is added.
  • issue #3: the fact that this new method needs a test is referenced in issue #8, so there is something of a constraint here
  • issue #5: the conditions that check whether n1 and n2 are 0 are unnecessary. They're not wrong, they're just not needed because of the rest of the method.

Additional Information:

ACM Knowledge Area/Knowledge Unit What ACM Computing Curricula 2013 knowledge area and units does this activity cover? ACM_Body_of_Knowledge
ACM Topic What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf
Level of Difficulty Is this activity easy, medium or challenging?
Estimated Time to Completion How long should it take for the student to complete the activity?
Materials/Environment What does the student need? Internet access, IRC client, Git Hub account, LINUX machine, etc.?
Author(s) Who wrote this activity?
Source Is there another activity on which this activity is based? If so, please provide a link to the original resource.
License Under which license is this material made available? (http://creativecommons.org/licenses/)

Suggestions for Open Source Community:

Suggestions for an open source community member who is working in conjunction with the instructor.


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox