The ATutor source code is maintained in a GitHub repository, a public version control system that provides "Social Coding" capabilities, making it relatively easy for ATutor developers to have work added to ATutor's public source code. Developers will need to become familiar with Git and GitHub if they wish to participate in ATutor development. There is plenty of documentation on using Git and GitHub. You might read through the book at Git Pro, or review the GitHub Help documentation.
4.1 Setting up a Git Development Environment
Though there are a variety of Git client applications available, working from a command prompt issuing Git commands is relatively easy to learn. Knowing a small set of Git commands is all you required to get up and running, and contributing code through GitHub.
For Mac users there is GitHub for Mac, which can be installed to setup Git on your Mac. It provides a graphical client through which GitHub can be accessed.
Linux users also have a variety of Github clients available, such as Git Cola or Giggle, among others. And, of course, if you prefer to just work from the command prompt, just install git itself. Most, probably all, Linux systems have a Git package available that can be installed through their package management system. On Ubuntu or Debian for instance, as the root user issue the command apt-get install git at the command prompt.
4.2 Creating and Maintaining a Git Fork
All developers outside the core development team will work in their own fork of the ATutor source code located on GitHub. Creating a fork is pretty straight forward. Once your Github account is setup, and you have logged in, search for the atutor/ATutor repository. At the top of the screen while viewing the repository, click on the "Fork" button to create a fork of the master source code. You will now have a copy of the source code linked to your account, something like username/ATutor, where username is your GitHub login.
Now you will want to clone the fork you created into your local development environment. Using your Git client you can then find its "clone" features to generate a local copy, or at the command prompt issue the following commands:
Create a clone
Create a branch to work in
Edit, create, add copies of file as you would during development
Keep your branch up-to-date
Perform these operations often
After pulling from the ATutor master repository, review the latest SQL upgrade file to ensure your database structure is up-to-date (in the install/db/ directory ). The file will contain schema changes of the current pre-released source. Example: If the current working source will be version 1.9, then the upgrade file to keep track of will be named atutor_upgrade_x.y.z_to_1.9.sql, where x.y.z is the version of the currently available stable release.
4.3 Submitting code for review and addition to ATutor
*Go to https://github.com, login, then under "switch branches" select the new_feature branch you just pushed.
*Click on the Pull Request button, to send your code for review.
*Read through the pull request to ensure it is correct, for example "You're asking atutor to pull 1 commit into atutor:master from username:new_feature"
*Press Send pull request to finish your code submission.
Clean up when you're done
4.4 Reviewing and merging pull requests into ATutor master branch
This section is only for ATutor committers who have commit access to ATutor project repository.
Make sure the local master branch is up to date and clean.
Add the developer's ATutor project repository as a remote. This only needs to be performed once.
Base off the master branch and create a test branch for this pull request.
Test and review the branch.
Now, the pull request can be merged into the master.
Also see: Using Git and GitHub