Saturday, August 15, 2009

Installing eXPlainPMT

Previous: Installing Git

eXPlainPMT is an Open Source project planning tool geared for Extreme Programming.

Installation


I installed it like this:
  1. Downloaded the distribution archive from http://github.com/explainpmt/explainpmt/tree/master.
  2. Unzipped the archive into my home directory.
  3. Renamed the top-level directory 'explainpmt'.
  4. I'm using SQLite for this program, so I didn't need to create a MySQL database.
  5. The instructions say to edit config/database.yml, but this distribution had no such file. There was a database_cruise.yml with an entry for postgresql, but I wanted to use sqlite. I created a database.yml file with the following contents:
    production:
    adapter: sqlite3
    database: db/production.db
    development:
    adapter: sqlite3
    database: db/development.db
    test:
    adapter: sqlite3
    database: db/test.db
  6. Created file log/production.log and gave it permissions 0666.
  7. In the explainpmt directory: Ran
    rake db:migrate RAILS_ENV=production
    Note the syntax differs from the instructions given on Github. It complained about the Rails version and suggested this to fix it:
    sudo gem install -v=2.0.2 rails
    After that the rake command completed successfully.

Verify installation


From the explainpmt directory, I ran this command to start up the program:
./script/server webrick -e production -p 8100
In Firefox, I went to localhost:8100. eXPlainPMT started up clean. I entered the default userid and password, admin/admin, and everything looked normal.

Conveniences



When I want to use eXPlainPMT for a personal development project, I copy the full eXPlainPMT directory structure to /projects/projectname/explainpmt so that there is a separate "backlog" or "master story list" or "work queue" (pick your favorite buzzwords) for the project. That means starting a separate eXPlainPMT instance for each project. To simplify starting and stopping the tool, I created a bash script to wrap the command line shown above and to capture the pid to stop the server later. You can cd to the /projects/projectname directory and type 'backlog xxxx' where xxxx is the port number you want the server to listen on. When finished working on that project for the moment, you can type 'backlog_stop'. The script looks like this:
#!/bin/bash
# Start an instance of eXPlainPMT
# Assumes you are in the /projects/projectname directory
# and eXPlainPMT lives in /projects/projectname/explainpmt
if [ ! $# == 1 ]; then
echo "Usage: $0 port-number"
exit
fi
`./script/server webrick -e production -p $1 2> temp_$` &
sleep 5
# Grab the pid and create a quick and dirty shutdown script
echo `awk '/pid=/ {split($5,thepid,"="); print "kill -9 " thepid[2]}'
temp_$` > backlog_stop
chmod +x backlog_stop
firefox http://localhost:$1
Also added an alias to .bash_aliases:
# Start any eXPlainPMT server
alias backlog='~/bin/backlog_start'

A comment on the installation instructions


I've used eXPlainPMT in the past and so I was reasonably familiar with it. Had that not been the case, I suspect I would have given up and looked for another tool. The installation instructions are sparse and several releases out of date. I don't know that a novice user would be successful following the published installation instructions. This may not be the best way to encourage people to use an Open Source product.

Next: Firefox development tools

1 comment:

  1. Hello. Trying to evaluate this tool.. new to ruby and am a windows user.. finally reached the point just before the server scripts.. how is this run in windows? Do I need apache web server some input is very appreciated. I agree.. that is not the way to encourage new users..

    ReplyDelete