Difference between revisions of "Information for OPL maintainers"

From WeBWorK_wiki
Jump to navigation Jump to search
Line 1: Line 1:
Here is information for OPL maintainers.
+
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==
  +
  +
# <code>cd</code> to your copy of the OPL git repository
  +
# <code>git pull</code> -- this brings in any changes made to OPL problems
  +
# Fix a bug
  +
# <code>git commit -a</code>, 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.
  +
# Alternatively, if you want to only commit a change to a particular file, first give `git add path/to/file`, and then `git commit`
  +
# <code>git push</code> -- this sends your changes back to github
  +
# 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
  +
  +
* <code>git status</code> -- shows a list of problems which have been modified on your machine
  +
* <code>git diff</code> -- shows diffs for all problems which have been modified on your machine
   
 
==Initial Setup==
 
==Initial Setup==
The OPL is kept as a git repository at [http://github.com 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.
+
This is the longest part, but it only has to be done once. The OPL is kept as a git repository at [http://github.com 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.
   
 
# Go to [http://github.com github] and create an account (if you do not have one already). It is free.
 
# Go to [http://github.com github] and create an account (if you do not have one already). It is free.
Line 19: Line 35:
 
## <code>git config --global user.email "me@here.com"</code> (where you use the e-mail address you used at github)
 
## <code>git config --global user.email "me@here.com"</code> (where you use the e-mail address you used at github)
 
# 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>
 
==When Fixing a Bug==
 
 
# <code>cd</code> to your copy of the OPL git repository
 
# <code>git pull</code> -- this brings in any changes made to OPL problems
 
# Fix a bug
 
# <code>git commit -a</code>, 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.
 
# Alternatively, if you want to only commit a change to a particular file, first give `git add path/to/file`, and then `git commit`
 
# <code>git push</code> -- this sends your changes back to github
 
# 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
 
 
* <code>git status</code> -- shows a list of problems which have been modified on your machine
 
* <code>git diff</code> -- shows diffs for all problems which have been modified on your machine
 

Revision as of 00:18, 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 a bug
  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
  5. 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)
  6. 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