Handle an OpenMRS Ticket (Activity)

(Difference between revisions)
Jump to: navigation, search
Line 61: Line 61:
[[Category: OpenMRS]]
[[Category: OpenMRS]]
[[Category: Learning_Activity]]

Revision as of 18:44, 24 January 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


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.
Personal tools
Learning Resources
HFOSS Projects