Handle an OpenMRS Ticket (Activity)

(Difference between revisions)
Jump to: navigation, search
(Added Creative Commons license)
Line 59: Line 59:
 
#* Include the URL of the pull request in the comment for the code review.
 
#* Include the URL of the pull request in the comment for the code review.
 
# Wait. Someone from OpenMRS will respond to the pull request.
 
# Wait. Someone from OpenMRS will respond to the pull request.
 +
 +
--------------------
 +
This work is licensed under a
 +
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
 +
 +
[[File:CC_license.png]]
  
 
[[Category: OpenMRS]]
 
[[Category: OpenMRS]]
 
[[Category: Learning_Activity]]
 
[[Category: Learning_Activity]]

Revision as of 20:32, 22 December 2014

OpenMRS Tickets

  • Description: Use git and Eclipse to handle an OpenMRS ticket.
  • Source: Ben Coleman
  • Prerequisite Knowledge: A working github account, Eclipse configured for OpenMRS
  • Estimate Time to Completion: 60 minutes plus time to solve the ticket
  • Learning Objectives: Ability to
    • fork, clone, checkout, and commit code using git and github.
    • follow the process defined by OpenMRS for tickets.
  • Materials/Environment: Access to Internet / Web and web browser, git, Eclipse
  • Additional Information: N/A
  • Rights & Licensed: CC BY-SA FIXME check that this license is appropriate
  • Turn In: None

Video

Watch the OpenMRS University video, http://www.youtube.com/watch?v=SbbDvMVgRWo entitled, “OpenMRS University: Contributing Code.”

Handle a Ticket

The following steps are followed in the video:

  1. Claim the ticket
  2. Fork the appropriate repository on github.
    • The project name is in the upper-left corner of the ticket next to the ticket id.
  3. Clone the repository to your local machine.
    • git clone <math><</math>repository url<math>></math>
    • The repository url should point to the forked copy on your github account.
  4. Set the upstream repository
    • git remote add upstream <math><</math>repository url<math>></math>
    • The repository url should point to the original copy of the project on github.
    • You must be in the project directory for this command to succeed.
  5. Fetch all the current branches of the project.
    • get fetch –all
    • FIXME I don’t quite understand why this is necessary. What did we have after the clone?
  6. Pull all changes from the upstream master
    • git pull –rebase upstream master
    • FIXME In the video and on my sample ticket, there were no changes. I don’t understand how there could be after the fetch (much less after the clone).
  7. Create a branch to work in
    • git checkout -b <math><</math>branch name<math>></math>
    • Use the ticket identifier as the branch name.
  8. Import the project into Eclipse
    • Use the “Browse..” button to point at the directory containing the project.
  9. Tell Eclipse that the project uses git.
    • Select all the projects, and then right click. Select “Team” and then “Share Project...” The default opens are correct.
    • Do not use “Share Projects” (plural). This is for adding a new form of sharing.
  10. Handle the issue described in the ticket...
  11. Add your changes to the staging area of your local repository.
    • git add -i for an interactive add.
    • git add <math><</math>filename<math>></math> to add specific files
  12. Commit your changes to your local repository
    • git commit -m "<math><</math>ticket id<math>></math>: <math><</math>commit message<math>></math>"
  13. Push the changes in your branch back to the origin on github.
    • git push origin <math><</math>branch id<math>></math>
  14. Change to the branch on github, and make a pull request
    • Include the URL of the ticket.
    • Be sure to check the “Commits” and “Files Changed” tabs to be sure you are sending the correct changes.
  15. Request a code review on the ticket page
    • Include the URL of the pull request in the comment for the code review.
  16. Wait. Someone from OpenMRS will respond to the pull request.

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