Difference between revisions of "Information for OPL maintainers"

From WeBWorK_wiki
Jump to navigation Jump to search
Line 36: Line 36:
 
</ul>
 
</ul>
 
# On your home machine, we now tell git who you are. Give the following two commands
 
# On your home machine, we now tell git who you are. Give the following two commands
## <code>git config --global user.name "Firstname Lastname"</code> (where you use your real name)
 
  +
<ul>
## <code>git config --global user.email "me@here.com"</code> (where you use the e-mail address you used at github)
 
  +
<ol style="list-style-type:lower-roman">
  +
<li> <code>git config --global user.name "Firstname Lastname"</code> (where you use your real name)
  +
<li> <code>git config --global user.email "me@here.com"</code> (where you use the e-mail address you used at github)
  +
</ol>
  +
</ul>
 
# Now we get a copy of the OPL. <code>cd</code> to the directory where you want to put the OPL. Then <code>git clone git@github.com:openwebwork/webwork-open-problem-library.git</code>
 
# Now we get a copy of the OPL. <code>cd</code> to the directory where you want to put the OPL. Then <code>git clone git@github.com:openwebwork/webwork-open-problem-library.git</code>
 
</ol>
 
</ol>

Revision as of 00:30, 11 March 2013

Here is information for OPL maintainers for fixing bugs. Note, the svn version of the NPL/OPL is closed. All changes should take place in the git repository.

Fixing a Bug

  1. cd to your copy of the OPL git repository
  2. git pull -- this brings in any changes made to OPL problems
  3. Fix the bug (admittedly, most of the time is spent here)
  4. git commit -a, and give a useful commit message. In particular, if this is a bug from bugzilla, mention that you fixed the bug with the bug number. Note, this will commit changes to every file you have modified. If you see that more files are going to be committed which you did not intend, leave the commit message blank; it will abort the commit.
  5. Alternatively, if you want to only commit a change to a particular file, first give `git add path/to/file`, and then `git commit`
  6. git push -- this sends your changes back to github
  7. Mark the bug as fixed in bugzilla with a brief note about the fix

Auxilliary Commands

On your home machine, cd to the OPL git repository. From there you can

  • git status -- shows a list of problems which have been modified on your machine
  • git diff -- shows diffs for all problems which have been modified on your machine

Initial Setup

This is the longest part, but it only has to be done once. The OPL is kept as a git repository at github. There is a little work to do to get set up, but then committing your bug fixes back to the main repository is fairly easy. Steps in this section only need to be done once.

    1. Go to github and create an account (if you do not have one already). It is free.
    2. Contact one of principal OPL maintainers with your github login to have them add you the list of committers
    3. If you do not have an ssh key (if you have a file ending in ".pub" in your ~/.ssh directory, you can skip this step), create one with the command ssh-keygen -t rsa. It will ask you for a passphrase (twice): just hit enter each time.
    4. We make it so you can communicate with github from the command line without passwords. Login to your github account, and
      1. click on the settings icon (looks like tools near the upper right corner of the page)
      2. Click "SSH Keys" in the left sidebar
      3. Click "Add SSH key"
      4. Click "Add key"
      5. Give your key a title and paste the contents of your .pub file in the box for the key
      6. Save, you will need to give your github password
    1. On your home machine, we now tell git who you are. Give the following two commands
      1. git config --global user.name "Firstname Lastname" (where you use your real name)
      2. git config --global user.email "me@here.com" (where you use the e-mail address you used at github)
    1. Now we get a copy of the OPL. cd to the directory where you want to put the OPL. Then git clone git@github.com:openwebwork/webwork-open-problem-library.git