Using Bazaar to Contribute Code

From IHRIS Wiki

We maintain all of our code in Launchpad using the Bazaar version control system.

Bazaar

Installing Bazaar

You can install bazaar under ubuntu via

sudo apt-get install bzr bzrtools

Using Bazaar

You should try the five minute tutorial.

Bazaar Branches

There are a few software components that we maintain, and for each there is a release and development trunk.

Working On The Code

Suppose you want to setup a development server on your machine to play around with the code. Here are some steps that you can take to install iHRIS Manage under your home directory and setup up the apache and mysql web server.

Installing The Required Software

First we need to install some prerequisites for the software

sudo apt-get tasksel install lamp-server
sudo apt-get install php-apc php5-gd php5-tidy

Creating The Database

You can create the database, which we will call ihris_manage by:

mysql -u root -p
mysql> CREATE DATABASE ihris_manage;
mysql> GRANT ALL PRIVILEGES ON ihris_manage.* TO ihris_manage@localhost identified by 'PASS';

here you should change 'PASS' to whatever you want. You can also use phpmyadmin to create the database.

Getting The Code

Now we want to get the code from launchpad.

mkdir ~/ihris-dev
cd ~ihris-dev
bzr branch lp:i2ce 
bzr branch lp:ihris-common common
bzr branch lp:ihris-manage manage
bzr branch lp:textlayout/3.1 textlayout

Configuring The Software

In iHRIS Manage, there is a demo site setup with sample data. We can make this available in apache by doing the following:

cd /var/www
sudo mkdir ihris-dev
cd /var/www/ihris-dev
sudo ln -s ~/ihris-dev/manage/sites/Demo/pages manage

Once we complete some configuration options, you can access the site at:

http://127.0.0.1/ihris-dev/manage

To complete the configuration we need to tell the application which database we want to use: We will now edit the configuration to let the site know about the database user and options:

gedit ~/ihris-dev/manage/sites/Demo/pages/config.values.php

We now need to uncomment and set the value of a few variables. They are:

Variable Name Value
$i2ce_site_i2ce_path /home/YOUR_USER_NAME/ihris-dev/i2ce
$i2ce_site_database ihris_manage
$i2ce_site_database_user ihris_manage
$i2ce_site_database_password PASS (the password you set above)
$i2ce_site_module_config /home/YOUR_USER_NAME/ihris-dev/manage/sites/Demo/iHRIS-Manage-Demo.xml

Save and quit.

URL Rewriting

Finally, we can make our url's pretty by turning on rewriting. This is an optional step.

sudo a2enmod rewrite
cd ~/ihris-dev/manage/sites/Demo/pages
cp htaccess.TEMPLATE .htaccess
gedit .htaccess

We need to look for the line RewriteBase and change it to the web directory we want to use we are using, /ihris-dev/manage. You may now save and quit.

To make sure we can use our new .htaccess file do:

sudo gedit /etc/apache2/sites-available/default

and vhange:

<Directory /var/www/>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride None
 Order allow,deny
 allow from all
</Directory>

to:

<Directory /var/www/>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
</Directory>

Coding Policy

Indentation and Formatting

No tabs please. All tabs should be converted to 4 spaces. The indentation style for (PHP) code should be bsd.

Documentation

We document our php code with phpdoc.