Home > rallytastic

rallytastic

Rallytastic is a project mainly written in Ruby, based on the MIT license.

Rally User Story Teleporter

= rallytastic == Description

Do you use Rally? Every day? Do you use it enough that you've run out of ways to hack the site to get that last ounce of customization from it? The reports, for example, while very good, aren't quite what you need to run your dev shop, are they? If you've taken a look at the RallyAPI longingly in the past, but written it off as too much work to do anything meaningful with, then Rallytastic is offering you a helping hand.

Rallytastic is a set of objects built on MongoDB and Mongoid, along with Thor tasks that pull data out of Rally and stuff it into those objects. Once there, Rallytastic tries to get out of your way and lets the data be your playground. Have at it with a platic shovel and Tonka Bulldozer if that'll get you up in the morning. You were born to get down with your bad Rally self. Be Awesome.

Rallytastic is intended to be the foundation of a web app that reports User Story data back to Rally users. It augments Rally proper primarily as an extention to the reporting capabilities. For example, if you are more concerned with the throughput of your dev teams than their velocity, Rallytastic is going to help you build custom fit measuring tools for that. It has built in helpers to walk through the revision logs of your stories and identify key events in their lifecycle. You can track work in progress(WIP) levels over time, measure how long stories sit prioritized on your backlog before dev starts, identify queues and bottlenecks anywhere between story definition time and release, and much more.

== Configuration

In a file that is required from lib/rallytastic.rb, you can configure Rally authentication. RallyAPI::configure do |config| config.user = "[email protected]" config.password = "password" end

You also need to have Mongo running, and let your app know what database to use. Either do it the Rails .yml way, or put something like this in a config file and include it: Mongoid.configure do |config| name = "rallytastic_dev" host = "localhost" config.master = Mongo::Connection.new.db(name) config.persist_in_safe_mode = false end

You should also set mongo to use a testing database in spec/spec_helper.rb Mongoid.configure do |config| name = "rallytastic_test" host = "localhost" config.master = Mongo::Connection.new.db(name) config.persist_in_safe_mode = false end

==Usage

=== Populating your MongoDB for the first time

bundle exec thor scraper:projects bundle exec thor scraper:iterations bundle exec thor scraper:refresh

=== Revisions are pulled on request per iteration

bundle exec thor scraper:revisions "Iteration Name"

=== On an ongoing basis, updating stories is quicker

bundle exec thor scraper:refresh

update the story revisions for the iteration you are interested in

bundle exec thor scraper:revisions "Iteration Name"

=== Thor Tasks ==== scraper:help [TASK]

Describe available tasks or one specific task

==== scraper:refresh

Pulls down Rally stories since the last run, and creates Iterations and Projects as needed. This is the task you want to put in your job scheduler.

==== scraper:stories

Walk Rally stories updated since last run

==== scraper:update_non_stories

The scrape:stroies task creates shell iterations and projects for any that it doesn't know about yet. This task looks for those, and pull their information down from Rally

==== scraper:revisions iteration_name

Get the revisions for stories hanging off an iteration

==== scraper:projects

Bootstrapping method that is primarily useful when you are setting up Rallytastic for the first time. It will walk Rally and pull down all projects. Technically, you don't need to run this because using the scrape:stories; scrape:update_non_stories; will fill this information in for you. It may be a bit quicker though to run this first if you have a lot of projects because it does batch queries

==== scraper:iterations

Bootstrapping method that is primarily useful when you are setting up Rallytastic for the first time. It will walk Rally and pull down all Iterations. Technically, you don't need to run this because using the scrape:stories; scrape:update_non_stories; will fill this information in for you. It may be a bit quicker though to run this first if you have a lot of iterations because it does batch queries

== TODO * Add Releases * Taging stories * Reporting engine == Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. == Copyright Copyright (c) 2010 Matt Clark. See LICENSE for details.