Sahana Eden

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 you 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