Installing a Developer Environment
When making code customizations, it is best to do this in a local copy of the code, test thoroughly, and then pull that code to the server, rather than editing files directly on the server. Keeping the code modifications under revision control greatly eases the process of upgrading the software while keeping your customizations intact.
A development environment can be installed on Windows, Linux or Mac - we have active developers using all three platforms. Detailed instructions can be found on the Sahana Eden wiki:
http://eden.sahanafoundation.org/wiki/InstallationGuidelines
To keep the setup simple, we recommended using the default SQLite database and the default Web2py internal web server.
Note: Unless using a set of prepopulate data which includes an Admin user, the first user to register on a new Sahana Eden installation gets administrator rights. You will need this to be able to view any error tickets that are generated, and to examine the database using Web2py's interface.
GitHub
In order to contribute code you should have your own repository on GitHub, a community collaboration platform based on the Git distributed version control system.
Start by registering here:
https://github.com/signup/free
Add your SSH Keys:
http://help.github.com/win-set-up-git/
You can then fork the Eden trunk:
https://github.com/flavour/eden/fork_select
You can then clone this branch down locally to work on:
cd web2py/applications git clone git@github.com:mygitusername/eden.git
Note: If you already have a local clone of trunk, then you can use this instead of requiring a fresh clone by modifying the source URL in eden/.git/config:
[remote "origin"] url = git@github.com:mygitusername/eden.git
Then set the Trunk branch as the 'upstream' remote:
cd eden git remote add upstream git://github.com/flavour/eden.git
This allows you to pull the latest changes to trunk using:
git pull upstream master
Recommended Development Tools
For easy inspection and debugging of both CSS and JavaScript when working on UI improvements, use the Firebug plugin for Firefox.
For serious developers, we recommend Eclipse as a graphical debugger because of the enhanced visibility gained by setting breakpoints and stepping through the server-side Python code.
Virtual Machine
A pre-configured Virtual Machine is available to allow a developer to get operational quickly, which is great for training events to both reduce time on installation and it also gives all participants a consistent environment. The Virtual Machine instructions can be found here:
http://eden.sahanafoundation.org/wiki/InstallationGuidelinesVirtualMachine