Using Bazaar to Contribute Code
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.
- Release
- i2ce bzr branch lp:i2ce/3.1
- ihris-common bzr branch lp:ihris-common/3.1
- ihris-manage bzr branch lp:ihris-manage/3.1
- ihris-plan bzr branch lp:ihris-plan/1.0
- ihris-qualify bzr branch lp:ihris-qualify/3.1
- textlayout bzr branch lp:textlayout/3.1
- Development
- i2ce bzr branch lp:i2ce
- ihris-common bzr branch lp:ihris-common
- ihris-manage bzr branch lp:ihris-manage
- ihris-plan bzr branch lp:ihris-plan
- ihris-qualify bzr branch lp:ihris-qualify
Working On The Code
Installing The Required Software
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.
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 Rewritting
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.