14 June 2010

Agilo for Scrum

Bambitroll @ 15:29
I found a tool called Agilo (built on of Trac) which looks promising as a Scrum tool. It supports most of the Scrum features and is actually quite nice to use.

Here is a description regarding how to install Agilo

I used a lot of information from the following pages (mostly for Hardy but can be reused):
 http://trac.edgewall.org/wiki/0.11/TracOnUbuntu
 http://trac.edgewall.org/wiki/0.10.4/TracOnUbuntuHardy
 http://trac.edgewall.org/wiki/TracUbuntuMultipleProjects
 http://anantgarg.com/2009/03/25/subversion-trac-multiple-projects/
 http://www.agile42.com/cms/pages/download-install/
 http://specialbrands.net/2010/01/12/agilo-a-scrum-tool-agile-scrum/

Now for the step by step install (all commands are run as root!):

We start from a fresh Ubuntu 10.04 Lucid Lynx server

First we add Apache and some tools

apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion python-simplejson

Then we install trac

apt-get install trac

Then we configure Trac

mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac
ln -s /var/lib/trac/ /trac
vi /etc/apache2/sites-available/trac and add this:

<VirtualHost *>
ServerAdmin user@email.com
ServerName you.servername.com
DocumentRoot /var/www
ErrorLog /var/log/apache2/error.trac.log
CustomLog /var/log/apache2/access.trac.log combined

<location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac
PythonOption TracUriRoot /trac
PythonOption PYTHON_EGG_CACHE /tmp
</location>
# use the following for one authorization for all projects 
# (names containing "-" are not detected):
<LocationMatch "/trac/[[:alnum:]]+/login">
AuthType Basic
AuthName "trac"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</LocationMatch>
</VirtualHost *>

a2dissite default
a2ensite trac
/etc/init.d/apache2 reload

Then we configure SVN:

mkdir /var/lib/svn
svnadmin create /var/lib/svn/theproject
chown -R www-data /var/lib/svn


Then we create the Trac site for the project:

trac-admin /var/lib/trac/theproject initenv
chown -R www-data /var/lib/trac
vi /etc/apache2/mods-available/dav_svn.conf and add this:

<location /svn>
# Uncomment this to enable the repository
DAV svn

# Set this to the path to your repository
#SVNPath /var/lib/svn
# Alternatively, use SVNParentPath if you have multiple repositories under
# under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
# You need either SVNPath and SVNParentPath, but not both.
SVNParentPath /var/lib/svn
#Provides directory listing of repositories
SVNListParentPath On

# Basic Authentication is repository-wide.  It is not secure unless
# you are using https.  See the 'htpasswd' command to create and
# manage the password file - and the documentation for the
# 'auth_basic' and 'authn_file' modules, which you will need for this
# (enable them with 'a2enmod').
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/authz_svn.access

Require valid-user
</location>

/etc/init.d/apache2 reload


Now Agilo

Download and unpack Agilo Source Code and then run:
python setup.py install
vi /trac/theproject/conf/trac.ini and make sure that you have these lines

[components]
agilo.* = enabled
webadmin.* = enabled

Then run:
trac-admin /var/lib/trac/theproject upgrade
/etc/init.d/apache2 reload

Add the AccountManager plugin  http://trac-hacks.org/wiki/AccountManagerPlugin

Then you have to configure the access control for Trac (we use the same users for SVN and Trac):
htpasswd -cm /etc/apache2/dav_svn.passwd - NB: the -c creates the file so use it only once
vi /etc/apache2/authz_svn.access and have something like this:

[theproject:/]
theuser = rw


trac-admin /trac/theproject permission remove anonymous BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_MODIFY WIKI_VIEW
trac-admin /trac/theproject permission add TRAC_ADMIN theadminuser
/etc/init.d/apache2 restart

YOU ARE DONE!

How to add new users (as root):
htpasswd -m /etc/apache2/dav_svn.passwd theuser (use -c for the first time to create the file)
vi /etc/apache2/authz_svn.access and add the new user there with rw
/etc/init.d/apache2 reload
trac-admin /trac/theproject permission add theuser the_perm with THE_PERM being TEAM_MEMBER, PRODUCT_OWNER, SCRUM_MASTER or TRAC_ADMIN

How to increase the default attachment size for documents the wiki
Change max_size value in the [attachment] section of the trac.ini of your site
More info on the online doc which comes with every new Trac site!