Set up a localhost LAMP solution. XAMPP/MAMP are fine. I recommend placing a symlink to htdocs in your home dir. E.g. on OSX/XAMPP: cd ~; ln -s /Applications/XAMPP/xamppfiles/htdocs
Create a github account, set up git, and register your SSH key with github.
Fork the Elgg/Elgg repo into your account.
Create a separate Elgg install for each major Elgg branch you want to work on. This is because you can't downgrade an Elgg installation once installed/upgraded. Here's an example for 1.12:
cd ~/htdocs git clone git://github.com/Elgg/Elgg.git elgg112 cd elgg112 git checkout 1.12 git remote add fork firstname.lastname@example.org:yourGithubUsername/Elgg.git
The Elgg 1.12 codebase is now in ~/htdocs/elgg112. Continue to install Elgg as normal, giving it its own data directory and database for 1.12.
You should end up with a working Elgg 1.12 install at http://localhost/elgg112/
If you do git remote -v, you should see the following remotes:
fork email@example.com:yourUsername/Elgg.git (push) fork firstname.lastname@example.org:yourUsername/Elgg.git (fetch) origin email@example.com:Elgg/Elgg.git (push) origin firstname.lastname@example.org:Elgg/Elgg.git (fetch)
Now you have all you need to start bug fixing!
Security issues should be reported to email@example.com!