<?xml version="1.0" encoding="UTF-8"?>
<wiki-pages type="array">
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

The *AgilePM* plugin adds full and comprehensive support for your agile development process.

* Easy-to-use support tool for any formal *agile project management* approach.
* Goal Backlog
** Manage your Business Requirements / Goals
** Create delivery estimates
** Full project *visibility* for Business an PMO
* Sprint Backlog
** Link goals to stories
** Assess time-lines
** Track your progress
** Burn-down
** Enhance collaboration in the development team

h1. How-to Install

h3. Install Extension
{{{
RAILS_ENV=production script/rxm install agile_pm
}}}

h1. Screenshots

[[I:Screenshot Extension AgilePM Goals:Screenshot - Goals]]
[[I:Screenshot Extension AgilePM Stories:Screenshot - Stories]]
[[I:Screenshot Extension AgilePM Backlog:Screenshot - Backlog]]
</content>
    <created-at type="datetime">2009-03-14T12:14:59+00:00</created-at>
    <title>AgilePM</title>
    <updated-at type="datetime">2009-09-12T10:59:25+01:00</updated-at>
    <version type="integer">8</version>
  </wiki-page>
  <wiki-page>
    <author>Renato Atilio</author>
    <content>*1. Setup Apache2 with mod_fcgid*

To run Retrospectiva under mod_fcgid you will need to install the following packages:

{{{
$ sudo apt-get install apache2 libapache2-mod-fcgid libfcgi-dev
$ sudo gem install fcgi
}}}

The libfcgi-dev is needed so rubygems can install fcgi native extension. You could, otherwise, install it using apt-get instead of gem.

This section uses an Apache2 Virtual Host. If you have selected another model (e.g. an Alias directive within an existing website URL) you will probably need to write your own configuration.

The code assumes you are using "retrospectiva" as application name and "/var/www/retrospectiva/" as the path you installed it.

{{{
&lt;VirtualHost *&gt;
  ServerName your.site.com
  ServerAdmin webmaster@your.site.com
  DocumentRoot /var/www/retrospectiva/public/
  ErrorLog /var/log/apache2/retrospectiva-error.log
  CustomLog /var/log/apache2/retrospectiva-access.log combined

  DefaultInitEnv RAILS_ENV production

  &lt;Directory /var/www/retrospectiva/public/ &gt;
    Options ExecCGI FollowSymLinks
    AllowOverride all
    Order allow,deny
    Allow from all
  &lt;/Directory&gt;

&lt;/VirtualHost&gt;
}}}

*2. Retrospectiva application settings*

Within /var/www/retrospectiva/public/.htaccess, you need to comment out *all* references to AddHandler directives and to change dispatch.*cgi* to dispatch.*fcgi*

The key changes are:

{{{
# General Apache options
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#AddHandler fcgid-script .fcgi
Options +FollowSymLinks +ExecCGI

...

RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

...
}}}</content>
    <created-at type="datetime">2008-01-21T16:34:17+00:00</created-at>
    <title>Apache FastCGI configuration</title>
    <updated-at type="datetime">2008-01-21T16:37:48+00:00</updated-at>
    <version type="integer">3</version>
  </wiki-page>
  <wiki-page>
    <author>Don Parish</author>
    <content>Apache 2.1+ is required for this configuration due to mod_proxy_balancer dependencies.  Fedora Core 4 and below boxes need to be upgraded to either Fedora Core 5 or above!

h2. Install Relevant Gems

You will need to install @mongrel@ and @mongrel_cluster@ in addition to the other Ruby Gems mentioned in the [[Quick install|Quick install]] wiki page:
{{{
sudo gem install mongrel mongrel_cluster --include-dependencies
}}}

h2. Configure Mongrel Retrospectiva

I assume you have configured the database according to [[Quick install|Quick install]] already.

Change directory into the Retrospectiva RAILS_ROOT and execute the following in your shell on the webserver you plan to deploy on:
{{{
mongrel_rails cluster::configure -e RAILS_ENV -p START_PORT -a IP_ADDR -N MONGREL_PROCS
}}}
where RAILS_ENV is the Rails environment you want to make the configuration for (probably 'production' in this case), START_PORT is port number to start Mongrel processes at, IP_ADDR is the ip address to listen on (in most simple cases it would be 127.0.0.1) and NOMGREL_PROCS is the number of mongrel processes to run (so if MONGREL_PROCS=3 and START_PORT=8000 Mongrel process would be running on ports 8000, 8001, 8002).

Once this has been run it will create a file names mongrel_cluster.yml in Retrospectiva's config directory.

h2. Start Mongrel Cluster

Still under the RAILS_ROOT of Retrospectiva execute the following in the shell:
{{{
sudo mongrel_rails cluster::start
}}}

You should see a message that sayings something like "Mongrel starting X...".  If no error messages are written to stderr, pat yourself on the back!

h2. Apache2 Configuration

On a Fedora Core system create a file named /etc/httpd/conf.d/retrospectiva.include, which includes the following configuration:
{{{
&lt;Proxy balancer://retrospectiva_cluster&gt;
  BalancerMember http://127.0.0.1:8000
  BalancerMember http://127.0.0.1:8001
  BalancerMember http://127.0.0.1:8002
&lt;/Proxy&gt;
ProxyPass / balancer://retrospectiva_cluster/
ProxyPassReverse / balancer://retrospectiva_cluster/
ProxyPreserveHost on
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts ! 
ProxyPass /favicon.ico !
}}}

Now add the following configuration snippet into the virtual host(s) you want to host Retrospectiva under:
{{{ Include conf.d/retrospectiva.include }}}

h2. Reload Apache2

On Fedora Core systems, to reload Apache2 you need to execute the following in your shell:
{{{
sudo /etc/init.d/httpd reload
}}}

On Debian based systems:
{{{
sudo /etc/init.d/apache2 reload
}}}

h2. Congratuations - All done!


h2. Example on Fedora Core 5 system

h3. Include file

Had to use *./*conf.d instead of plain conf.d like:
 Include ./conf.d/retrospectiva.include 

h3. Example Virtual Host on Apache 2.2 on Fedora Core 5

* the port 3000 was used to avoid conflicts with other web apps. 80 fine for dedicated server.

Add the following to this file /etc/httpd/conf/*httpd.conf*
{{{
Listen 3000
&lt;VirtualHost *:3000&gt;
    DocumentRoot /var/www/retrospectiva/public
    ServerName myapp.com
    Include ./conf.d/retrospectiva.include
&lt;/VirtualHost&gt;

Listen 8080
&lt;VirtualHost *:8080&gt;
  &lt;Location /&gt;
    SetHandler balancer-manager
    Deny from all
    Allow from localhost
  &lt;/Location&gt;
&lt;/VirtualHost&gt;
}}}

h3. Restart Apache:

{{{	/sbin/service httpd restart }}}</content>
    <created-at type="datetime">2007-01-26T18:17:05+00:00</created-at>
    <title>Apache Mongrel configuration</title>
    <updated-at type="datetime">2007-03-07T09:13:15+00:00</updated-at>
    <version type="integer">4</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>Setting up Apache &amp; "Passenger":http://modrails.com is incredibly easy. Both provide a very stable and reliable combination for production usage.

This is a very brief and quick but effective introduction, there are probably hundreds of blog posts and HOWTOs on the web describing the set-up in more detail (please simply use a search engine). 

h3. Step 1: Install the passenger GEM

{{{
sudo gem install passenger
}}}

h3. Step 2: Install the Apache module

{{{
sudo passenger-install-apache2-module 
}}}

This launches the interactive Passenger installation. Just follow the instructions! The procedure automatically detects the OS and check all requirements. If a potential problem is found, it provides a very detailed information about its resolution.

In the end of the installation it provides configuration instructions for loading the modules into Apache and configuring the +VirtualHost+. Usually, you only need to add a few lines to the configuration an restart the Apache server. That's it!

Check also out the "User Guide":http://modrails.org/documentation/Users%20guide%20Apache.html for details or more advanced configuration options.

h2. Installing to a subpath.

If you wish to install Retrospectiva to a subpath rather than your domain root (ie, accessible at www.domain.com/appname), then in addition to configuring Apache as per the instructions in the Passenger User Guide, you will need to add the following to your config/runtime/custom.rb (create one if it doesn't exist).

{{{
ActionController::Base.relative_url_root = "/&lt;sub-uri&gt;"
}}}

h2. Optimizing.

This is a list of tips to make your retrospectiva faster.

h3. Passenger tips.

Apache configuration from "stackoverflow":http://stackoverflow.com/questions/853532/slow-initial-server-startup-when-using-phusion-passenger-and-rails

</content>
    <created-at type="datetime">2008-07-30T13:01:40+01:00</created-at>
    <title>Apache Passenger configuration</title>
    <updated-at type="datetime">2009-08-02T11:11:05+01:00</updated-at>
    <version type="integer">10</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij</author>
    <content>h3. Dimitrij Denissenko[[BR]]
London, UK | Vienna, Austria

h4. Please visit www.dvisionfactory.com for contact details</content>
    <created-at type="datetime">2006-12-01T16:08:03+00:00</created-at>
    <title>Author</title>
    <updated-at type="datetime">2006-12-03T19:45:36+00:00</updated-at>
    <version type="integer">2</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Web Interface

All configuration settings can be found in the *Setup* section in the *Admin* area.


h1. Configure ExceptionNotifier (optional)

If you wish to receive notification emails on runtime errors on your server, configure the built-in +ExceptionNotifier+:

* Create/Open a @config/runtime/custom.rb@ file
* Add this to the end:

{{{
ExceptionNotifier.exception_recipients = %w(your_email_adress@whatever.org)
}}}

Please see the documentation for further options: http://retrospectiva.org/browse/vendor/plugins/exception_notification/README</content>
    <created-at type="datetime">2007-03-16T07:24:50+00:00</created-at>
    <title>Configuration</title>
    <updated-at type="datetime">2009-06-23T21:27:56+01:00</updated-at>
    <version type="integer">4</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h3. 1. Create a new extension
{{{
mkdir extensions/my_project_page
touch extensions/my_project_page/ext_info.rb
}}}

h3. 2. Create your own controller

*extensions/my_project_page/ext/projects_controller.rb*
{{{
ProjectsController.class_eval do
  
  def index_with_custom_template
    index_without_custom_template 
    return false if performed?

    # Put your custom statements here
    # ...

    render :template =&gt; 'my_project_page/projects/index.html.erb'
  end
  alias_method_chain :index, :custom_template

end
}}}

h3. 3. Create your own custom view

*extensions/my_project_page/views/my_project_page/projects/index.html.erb*
{{{
&lt;% @page_title = _('Projects') -%&gt;
&lt;% slim_page -%&gt;
&lt;%= page_title %&gt;

&lt;% if @projects.blank? -%&gt;
  &lt;h2&gt;&lt;%=_ 'No projects available' %&gt;&lt;/h2&gt;

&lt;% else -%&gt;

  &lt;div class="container clear"&gt;
    &lt;%# 
      Your custom HTM/ERB template code
    %&gt;
  &lt;/div&gt;

&lt;% end -%&gt;
}}}

h3. Done!</content>
    <created-at type="datetime">2009-01-24T22:11:48+00:00</created-at>
    <title>Custom Project Overview</title>
    <updated-at type="datetime">2009-01-24T22:11:48+00:00</updated-at>
    <version type="integer">1</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h2. Suggested Methods

* [[Apache Passenger configuration|Apache + Passenger]]
* [[Nginx Passenger configuration|Nginx + Passenger]]
* [[Nginx Unicorn cookbook|Nginx + Unicorn]]

h2. Other Methods

* [[Apache Mongrel configuration|Apache + Mongrel]]

h2. Legacy Methods

* [[Apache FastCGI configuration|Apache + FastCGI]]
* [[Lighttpd FastCGI configuration|Lighttpd + FastCGI]]
</content>
    <created-at type="datetime">2008-07-30T13:07:38+01:00</created-at>
    <title>Deployment</title>
    <updated-at type="datetime">2009-12-29T12:34:27+00:00</updated-at>
    <version type="integer">6</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>The idea for this [[HOWTOs|HOWTO]] is based on the request [#141] where a user suggested to use a project drop-down to be able to switch between projects more efficiently. 

Based on the attached patch (thanks, Kou) I put together a short step-by-step recipe for extending existing Retrospectiva with additional functionality without touching the core. The resulting code adds a simple project drop-down at the bottom of the page, it can be found here: 


h3. Identify the to be extended code

We want to add something into the page footer, so let's find out how the footer is rendered. By looking into "app/views/layouts/_footer.rhtml":http://retrospectiva.org/browse/trunk/app/views/layouts/_footer.rhtml?rev=494#ln27 we can see that the left part of is rendered by a helper method called @render_left_side_footer, which can be found in "app/helpers/application_helper.rb":http://retrospectiva.org/browse/trunk/app/helpers/application_helper.rb?rev=494#ln200.

By looking closer we can see, that this method contains 3 extendable interfaces:
{{{
elements += view_extensions(:footer, :left, :before, :join =&gt; false)  
...
elements += view_extensions(:footer, :left, :between, :join =&gt; false)
...
elements += view_extensions(:footer, :left, :after, :join =&gt; false)
}}}

h3. Create the plugin

First, we create a directory in the extensions folder, in our case: @extensions/project_drop_down@. Next, we create a view-partial that will store the extension code:

{{{
01: &lt;% if Project.current &amp;&amp; User.current.projects.size &gt; 1 -%&gt;
02:   &lt;span class="quiet"&gt;
03:     &lt;%=_ 'Projects' %&gt;
04:     &lt;select onchange="window.location.href=this.value;"&gt;
05:       &lt;% 
06:         choices = User.current.projects.map do |project|
07:           [h(project.name), project_path(:project_name =&gt; project.short_name)]
08:         end
09:         selected = project_path(:project_name =&gt; Project.current.short_name)
10:       -%&gt;
11:       &lt;%= options_for_select choices, selected %&gt;
12:     &lt;/select&gt;
13:   &lt;/span&gt;
14: &lt;% end -%&gt;
}}}

* In line 1, we make sure that the code only applies if a project is selected and the logged-in user is able to access more than one project. 
* In line 3, we add a translatable label +Projects+ right in front of the drop-down. 
* Line 4 opens the @select@ tag, which contains a JS callback to follow the right URL on-change.
* In lines 6-8 we generate the drop-down choices array
* In lines 9 we identify the selected choice (currently selected project)
* Line 11 actually renders the choices, see "RubyOnRails Documentation":http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M000944 for details

All partials need to be saved within the @view@ directory in the extension folder. Partial paths need to be unique across all extensions, therefore it makes sense to save it in a nested folder structure that includes the extension name, i.e. (in our case) @extensions/project_drop_down/views/project_drop_down/_footer.html.erb@.

h3. Load the partial

In our @application_helper.rb@ we had the following line: @view_extensions(:footer, :left, :between, :join =&gt; false)@, remember? Let's assume we want our partial appear at this position of the page footer, we need to create the @ext_info.rb@ file in our extension directory with the following content: 
{{{
RetroEM::Views.register_extension('project_drop_down/footer', :footer, :left, :between)
}}}

The @ext_info.rb@ is loaded once (together with the plugin), in our case we associate the relative partial path @project_drop_down/footer@ with the @[:footer, :left, :between]@ extension interface slot, where it will appear when the page is loaded.

h3. Install the plugin, clean up, enjoy!

To install the plugin, we simply call @ruby script/rxm project_drop_down@. Done!

The only thing that can still be improved is the partial. Lines 5-11 contain processing logic, which is not only bad practice but also quite messy and difficult to read. How about externalising this bit into a nice and simple helper method? No problem at all, we just need to extend @application_helper.rb@. To do so, just create a file "ext/application_helper.rb":http://retrospectiva.org/browse/extensions/1-1/project_drop_down/ext/application_helper.rb file and add the helper method (i,e. @options_for_project_drop_down@) to it. Now just change the "partial":http://retrospectiva.org/browse/extensions/1-1/project_drop_down/views/project_drop_down/_footer.html.erb to use the helper method instead of the +messy+ inline code and ... enjoy!

h3. More, more, more

Do you want to create an extension and require more interfaces? Just file a ticket and I will extend the core with the additional requirements.
</content>
    <created-at type="datetime">2008-03-15T14:51:53+00:00</created-at>
    <title>Extend Views</title>
    <updated-at type="datetime">2009-02-06T07:58:12+00:00</updated-at>
    <version type="integer">4</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Extending Tickets

This example extensions adds an estimated-hours option to tickets.

h6. Create a new extension folder

{{{
cd extensions/
mkdir tickets_extended
cd tickets_extended/
}}}

h6. Create the required folders and the extension loader

{{{
mkdir ext/
mkdir migrate/
mkdir -p views/tickets_extended/
touch ext_info.rb
}}}

h6. Add the migration

Create/open @migrate/20090528180148_add_hours_column_to_tickets.rb@ with an editor and add the following content:

{{{
class AddHoursColumnToTickets &lt; ActiveRecord::Migration

  def self.up
    add_column 'tickets', 'estimated_hours', :integer, :null =&gt; false, :default =&gt; 0
  end

  def self.down
    remove_column 'tickets', 'estimated_hours'
  end

end
}}}

h6. Extend the +Ticket+ model

Create/open @ext/ticket.rb@ with an editor and add the following content:

{{{
Ticket.class_eval do 

  # Make sure estimated hours are ALWAYS numeric
  validates_numericality_of :estimated_hours, 
    :greater_than_or_equal_to =&gt; 0,
    :only_integer =&gt; true  

  # Make sure estimated hours are user-writeable
  attr_accessible :estimated_hours

end
}}}

h6. Extend the +TicketChange+ model

To trace changes to the +estimated_hours+ column, we also need to extend the +TicketChange+
Open @ext/ticket_change.rb@, add:

{{{
TicketChange.class_eval do 
  
  # Make sure we are able to accept changes to estimated_hours and forward 
  # those to the parent ticket
  delegate :estimated_hours, :estimated_hours=, :to =&gt; :ticket
  attr_accessible :estimated_hours
  
  private

    # Before saving, store the change (previous value -&gt; new value)
    def store_changes_for_estimated_hours!(result, old_value, new_value)
      change = hash_for_ticket_change(old_value, new_value)
      result[N_('Estimated hours')] = change if change
    end  

end
}}}

h6. Add the view partial

Open @views/tickets_extended/_ticket_options.html.erb@, add the following lines:
{{{
&lt;tr&gt;
  &lt;th&gt;&lt;%= f.label :estimated_hours, _('Hours') + ':' %&gt;&lt;/th&gt;
  &lt;td&gt;&lt;%= f.text_field :estimated_hours, :size =&gt; 5 %&gt;&lt;/td&gt;
  &lt;th&gt;&amp;nbsp;&lt;/th&gt;
  &lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
}}}

h6. Activate partial

Open @ext_info.rb@, add this line:

{{{
RetroEM::Views.register_extension('tickets_extended/ticket_options', :ticket, :options, :middle)
}}}

h6. Done!

Download the [[F:Extension Example Tickets Extended:full example]]</content>
    <created-at type="datetime">2009-05-28T18:20:08+01:00</created-at>
    <title>Extension Examples</title>
    <updated-at type="datetime">2009-05-28T18:22:39+01:00</updated-at>
    <version type="integer">2</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Voting / Survey

*Status*: +Planning+

bq. I think it is good idea to gave voting facility to simplify making decision for group of developers.


h1. htpasswd Controller

*Status*: +More Feedback Required+

bq. A very useful extension would work to take server-local htpasswd files and "take control" of them, by rewriting them with information from Retrospectiva.  This is useful particularly for those who have Retro and Subversion on the same server, since they could then have Retro administer Subversion user names and passwords without having to SSH into their server whenever someone forgets their credentials.  I wrote a basic authentication synchronizer script in PHP (since I have zero Ruby experience) which relies on the fact that I modified Retrospectiva to no longer use the password hash salting, since it threw off the SHA1 Sum.

bq. Rather than crowd up this page, I'll just [[Saurons Script:link]] to my little script.


h1. Forum

*Status*: +More Feedback Required+

bq. A lot of my developers love forums, and having one integrated right into Retro would be +really+ cool.  I (Lord Sauron) am not good with Ruby (at all) so I can't personally do it.  In the event that you want something to do, a forum extension would be greatly appreciated.  I think it would compliment the blog nicely.

h1. Image Resizing Engine

bq. Extension that +patches+ the image processing in Retrospectiva. It would depend on +rmagick+ and automatically take care of resizing in the background.

h1. Review Board

*Status*: +More Feedback Required+

bq. It would be great if Retrospectiva could replicate and integrate into itself the functionality provided by review-board (http://www.review-board.org). That would make it much more useful for developers.

h1. Document Management

*Status*: +More Feedback Required+

bq. During every project, some sort of meta files will be produced, for e.g. meeting protocols, design mockups etc. This stuff also doesn&#8217;t belong into a repository, so it would be great to see this integrated as an additional feature.

bq. Take a look at Assembla (http://www.assembla.com) and ProjectLocker (www.projectlocker.com). In addition to a Document Management feature they have a few more "must have" features that Retrospectiva really needs. Any software project results in a release where a set of application and documentation files are suppose to be published. Even Google's project hosting has a "Downloads" section/feature. It's strange that anybody would want to use a project hosting system that can't be used to pulish project deliverables.

h1. Chat Module

*Status*: +Idea Gathering+

bq. We like retrospectiva but need an integrated chat module, are there any solutions?

h1. Netbeans Tracker Connector

*Status*: +Idea Gathering+

bq. Create a connector so that tickets can be used in Netbeans. Possibly not the feasible at the moment as the tracker connector stuff isn&#8217;t fully public yet, but good to have on radar.

h1. Mercurial Adapter

*Status*: +Idea Gathering+

bq. Create an adapter for Retrospectiva to interface with a Mercurial version control repository (just like there is one for subversion, git etc. atm)

h1. Archived Projects

*Status*: +Waiting for contribution+

bq. Now Project can Be in status &#8220;Active&#8221; (not Closed) or &#8220;Closed&#8221;. When I close project, I can&#8217;t see this project in global list on home page. It&#8217;s normal, but our company, for example, has many project, witch are in archive. This project is closed now, but can have tasks in future (bugs fixing, support, additional options development etc). It will be cool, when on home page put link &#8220;closed projects&#8221; or &#8220;archive projects&#8221; (add status Archive to project etc).

h1. Automation build integration module

*Status*: +Idea Gathering+

bq. It would be great if retrospectiva would have option to implement similar functionality like CruiseControl, by executing regular svn or git chekcouts and after checkout executing some ant tasks.

h1. Export function for projects

*Status*: +Idea Gathering+

bq. It would be nice to have an export function to transport a whole Project to another server.


h1. Summary Emails

*Status*: +Waiting for Ruby port+ - basic Perl implemetation available [#707]

bq. I have many projects and tasks on my retrospectiva database. In system work 7-10 users. There are tickets with status &#8220;Open&#8221;, witch were not modified about 7 days. It will be good to receive mail notifications about such tickets.

h1. Kanban

*Status*: +Waiting for resources+

bq. It would be great to have a plugin for retrospectiva that makes a kanban out of the current tickets. Something like this: http://www.redmine.org/wiki/1/PluginKanban. It gives a nice view of what is being done, what is finished, what is in the backlog and etc..
</content>
    <created-at type="datetime">2007-07-31T12:31:34+01:00</created-at>
    <title>Extension Ideas</title>
    <updated-at type="datetime">2010-02-07T11:26:06+00:00</updated-at>
    <version type="integer">27</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Where To Find Extensions

You can browse what is available extension at http://github.com/dim

h1. Download

Downloading extensions is very easy. Go to your Retrospectiva installation directory and call:

{{{
script/rxm download http://retrospectiva.org/repository/extensions/extension_name.git
}}}

Example with *OpenID* extension:
{{{
script/rxm download http://retrospectiva.org/repository/extensions/openid_auth.git
# or from the mirror
script/rxm download git://github.com/dim/openid_auth.git
}}}

h1. Installation

You can manage extensions with *rxm*, the Retrospectiva Extension Manager.

To list all extensions, open a console, change to the path of your retrospectiva installation and call:
{{{
script/rxm list
}}}

To install an available extension, call:
{{{
RAILS_ENV=production script/rxm install extension_name
}}}

To uninstall an available extension, call:
{{{
RAILS_ENV=production ruby script/rxm uninstall extension_name
}}}

To uninstall an available extension and to purge all extension-relevant data from the database, call:
{{{
RAILS_ENV=production ruby script/rxm uninstall extension_name --remove-db
}}}

After you have installed the extension, you need to restart the application.
</content>
    <created-at type="datetime">2007-07-23T16:21:24+01:00</created-at>
    <title>Extensions</title>
    <updated-at type="datetime">2009-01-24T17:22:26+00:00</updated-at>
    <version type="integer">14</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>* [[Extend Views]] - Create short and simple view customisations
* [[Custom Project Overview]] - Create your own personal project overview
* [[Migration]] - from Trac &amp; Collaboa 
* [[Tips]] - general usage tips
</content>
    <created-at type="datetime">2008-03-15T13:48:35+00:00</created-at>
    <title>HOWTOs</title>
    <updated-at type="datetime">2009-01-25T12:35:10+00:00</updated-at>
    <version type="integer">6</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

The *HTTP Authentication* plugin allows you to use your web-server authentication to login to Retrospectiva. Please see http://en.wikipedia.org/wiki/Basic_access_authentication and http://en.wikipedia.org/wiki/Htaccess for more information.

h1. Installation

h3. Download Extension
{{{
RAILS_ENV=production script/rxm download git://github.com/dim/retrospectiva.http_auth.git
}}}

h3. Install Extension
{{{
RAILS_ENV=production script/rxm install http_auth
}}}
</content>
    <created-at type="datetime">2009-07-16T07:57:03+01:00</created-at>
    <title>HTTP Auth</title>
    <updated-at type="datetime">2009-07-16T07:57:03+01:00</updated-at>
    <version type="integer">1</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Install Ruby, RubyGems &amp; Rails

The great Ruby Enterprise Edition couldn't make this step simpler, just visit http://www.rubyenterpriseedition.com/download.html and follow the instructions.

For _customized_ installation, please follow the links below:

* Debian/Ubuntu #1 - http://jamesconstable.co.uk/web-development/installing-ruby-on-rails-via-passenger-on-ubuntu-804/
* Debian/Ubuntu #2 - https://help.ubuntu.com/community/RubyOnRails
* CentOS/Red Hat #1 - http://www.catapult-creative.com/2009/02/04/installing-rails-on-centos-5/
* CentOS/Red Hat #2 - http://blog.phatsite.com/?p=25
* FreeBSD - http://arthur.one2net.co.ug/index.php?id=28

h1. Install Retrospectiva

h6. Step 1: Download - "Latest Version":http://github.com/dim/retrospectiva/tarball/master

bq. Note: To keep your version up-to-date, you can instead simply clone the repository @git clone git://github.com/dim/retrospectiva.git@

h6. Step 2: Unpack
{{{
tar xzvf dim-retrospectiva-*.tar.gz
}}}

h1. Configure Retrospectiva

h6. Step 1: Create Database and User

Create a database and a database user for Retrospectiva. Login to the database 
console or interface and execute the following SQL code (MySQL example, please set your own
password):
{{{
CREATE DATABASE IF NOT EXISTS retrospectiva;
GRANT ALL PRIVILEGES ON retrospectiva.* 
  TO "retrospectiva"@"localhost" 
  IDENTIFIED BY "xxxxxxxxxxx";
}}}

h6. Step 2: Configure Database

* Create the configuration for your preferred database from @config/templates/database.DBNAME.yml@ to @config/database.yml@. Example (MySQL):&lt;br/&gt;
  @cp config/templates/database.mysql.yml config/database.yml@
* Now open the @config/database.yml@ with a text editor and adjust the configuration details in the *production* section.

bq. Note: Please see the "Rails - Getting Started Guide":http://guides.rubyonrails.org/getting_started.html#configuring-a-database for more information.

h6. Step 3: Load Initial Content

{{{
rake RAILS_ENV=production db:setup
}}}

If you have configured your @config/database.yml@ correctly, the database will be filled with the 
initial schema and content.

h1. Run retrospectiva

As a quick test, you can run Retrospectiva in the built-in +Webrick+ web-server, simply by calling:

{{{
ruby script/server -e production -p3000
}}}

Retrospectiva will start and will be accessible on http://your-hostname:3000.

To enter the administration environment login as *admin* and use *password* as
password. Please login to the admin area and review/update the settings under +Admin/Setup+. For more information see/update the [[Configuration]] page. 
Please do not forget to change this default password after successful login.

h1. Tasks

Background tasks can be configured/managed directly in the Administration interface of Retrospectiva. You still need a (single) cron-job to trigger the execution.

Call @crontab -e@ and paste the following line:
{{{
* *  * * *  RAILS_ENV=production ruby /path/to/retrospectiva/script/retro_tasks
}}}

h1. Deploy

You can integrate Retrospectiva within your own web server, please see the [[Deployment]] page in the [[Retrospectiva|Retrospectiva Wiki]] for more information.
</content>
    <created-at type="datetime">2006-12-01T16:08:26+00:00</created-at>
    <title>Installation</title>
    <updated-at type="datetime">2009-12-02T12:57:07+00:00</updated-at>
    <version type="integer">53</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Install Ruby, RubyGems and Rails ("source":http://en.wikibooks.org/wiki/Ruby_on_Rails/Getting_Started/Install_on_Windows)

h6. Ruby

Install Ruby as a regular application. You might need administrator privileges to install it successfully. Check the Ruby site for the latest version. The Ruby sites provides packages for all OS. Just follow their steps: http://www.ruby-lang.org/en/downloads/

h6. Gems

Download the latest RubyGem package from the offical ruby website: http://rubyforge.org/frs/?group_id=126 . To install, open up a console and navigate to the folder containing the gem file and the file setup.rb. To install the gems, type:

{{{
ruby setup.rb
}}}

h6. Rails

Use the console to type

{{{
gem install rails
}}}

This downloads and install all the needed components on your system.

h1. Configure MySQL ("source":http://wiki.rubyonrails.org/it/getting-started/installation/windows)

Install MySQL (the usual way) and then the MySQL adapter:

{{{
gem install mysql
}}}

It will give some "No definition for..." warning, but it seems to work fine anyway.

Download older MySQL client library, for example one from InstantRails: http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
Copy the downloaded file to C:\Ruby\bin (or wherever you installed Ruby).
Restart MySQL server ["source":http://rdc.taobao.com/blog/qa/?p=523&amp;cpage=2].

h1. Configure Retrospectiva 

Extract the latest Retrospectiva zip package. See [[Installation]] page for details.

h1. Deploy 

Since Passenger is not available for Windows, we need to use "Thin":http://code.macournoyer.com/thin/.

Install Thin by typing:
{{{ 
gem install thin 
}}}

To start Thin call:
{{{
thin start -e production
}}}

Please see @thin --help@ for option details.</content>
    <created-at type="datetime">2009-09-29T21:56:37+01:00</created-at>
    <title>Installation On Windows</title>
    <updated-at type="datetime">2009-09-29T21:56:37+01:00</updated-at>
    <version type="integer">1</version>
  </wiki-page>
  <wiki-page>
    <author>Anonymous</author>
    <content>Retrospectiva is an open source, web-based, project management and bug-tracking tool. It is intended to assist the collaborative aspect of work carried out by software development teams through the use of +blogs+, a +wiki+ and +tickets+. 

Users open tickets to track bugs,  and request enhancements. Administrators set targets for the team through +milestones+. A milestone is considered completed when all tickets assigned to it are closed. The wiki is used for the documentation of the project, whilst the blog logs ongoing progress. When used in conjunction, these tools provide a helpful framework for developing and maintaining source code. The generated code can be browsed directly in Retrospectiva, and changesets record updates made to the source repository.</content>
    <created-at type="datetime">2007-02-28T00:09:38+00:00</created-at>
    <title>Introduction</title>
    <updated-at type="datetime">2008-03-31T17:06:41+01:00</updated-at>
    <version type="integer">12</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

The *LDAP Authentication* plugin adds LDAP/ActiveDirectory authentication support for your Retrospectiva installation.

h3. Functionality

* Allows users to login with their LDAP credentials
* Fall-back to standard Retrospectiva authentication for Administrators
* Allows users to register by using their username/password. Additional information is directly from the directory.

h1. Installation

h3. Install GEM
{{{
sudo gem install dim-ruby-net-ldap --source=http://gems.github.com
}}}

h3. Download Extension
{{{
RAILS_ENV=production script/rxm download git://github.com/dim/retrospectiva.ldap_auth.git
}}}

h3. Install Extension
{{{
RAILS_ENV=production script/rxm install ldap_auth
}}}

h3. Configure

Visit your *Admin / Setup* section and adapt the configuration to your Directory setup.
</content>
    <created-at type="datetime">2009-06-13T12:58:18+01:00</created-at>
    <title>LDAP Auth</title>
    <updated-at type="datetime">2009-06-13T12:59:00+01:00</updated-at>
    <version type="integer">3</version>
  </wiki-page>
  <wiki-page>
    <author>Anonymous</author>
    <content>{{{
  Retrospectiva - http://www.retrospectiva.org
  Copyright (C) 2006 Dimitrij Denissenko

  Permission is hereby granted, free of charge, to any person obtaining
  a copy of this software and associated documentation files (the
  "Software"), to deal in the Software without restriction, including
  without limitation the rights to use, copy, modify, merge, publish,
  distribute, sublicense, and/or sell copies of the Software, and to
  permit persons to whom the Software is furnished to do so, subject to
  the following conditions:

  The above copyright notice and this permission notice shall be
  included in all copies or substantial portions of the Software.
	
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

  Important notice:
  Any parts literally taken over from Collaboa[1] are also liable to
  the MIT license.
    	    
  ----
  [1] Original copyright holder is Johan S&#248;rensen
      Please visit http://www.collaboa.org for details
}}}</content>
    <created-at type="datetime">2006-12-14T14:03:24+00:00</created-at>
    <title>License</title>
    <updated-at type="datetime">2007-09-07T08:08:19+01:00</updated-at>
    <version type="integer">4</version>
  </wiki-page>
  <wiki-page>
    <author>Anonymous</author>
    <content>h2. Lighttpd configuration for a [[Retrospectiva]] FastCGI virtual host

{{{
server.modules   += ( "mod_fastcgi" )

$HTTP["host"] == "retro.yourdomain.com" {
  server.name                    = "retro.yourdomain.com"
  server.document-root           = "/var/www/retrospectiva/public"
  accesslog.filename             = "/var/www/retrospectiva/log/access.log"
  server.error-handler-404       = "/dispatch.fcgi"
  server.indexfiles              = ("dispatch.fcgi", "index.html")
  fastcgi.server                 = ( ".fcgi" =&gt; ( "retro" =&gt; (
    "min-procs" =&gt; 1,
    "max-procs" =&gt; 2,
      "bin-environment" =&gt; ( "RAILS_ENV" =&gt; "production" ),
      "socket" =&gt; "/tmp/ruby-retro-fcgi.socket",
      "bin-path" =&gt; server.document-root + "/dispatch.fcgi"
  )))
}
}}}</content>
    <created-at type="datetime">2006-12-01T16:11:38+00:00</created-at>
    <title>Lighttpd FastCGI configuration</title>
    <updated-at type="datetime">2008-01-02T17:30:38+00:00</updated-at>
    <version type="integer">3</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

This plugin extends the _vocabulary_ of your markup. It allows you e.g. to add references to 3rd party content providers, such as "SlideShare":http://slideshare.net. 

h1. Installation

h3. Download Extension
{{{
RAILS_ENV=production script/rxm download git://github.com/dim/retrospectiva.markup_extensions.git
}}}

h3. Install Extension
{{{
RAILS_ENV=production script/rxm install markup_extensions
}}}

h3. Setup Extension

Navigate to your *Admin / Setup* area. At the bottom of the *Content* section you will find a new option-group - *Markup extensions*.

h1. Usage

Once enabled, you will be able to use custom code in every markup text field. Example:

{{{
h2. Here's a nice set of slides!

[slideshare id=793272&amp;doc=the-four-seasons-pictures-1227773035671604-9]
}}}

h1. Get Involved

Please help me to extend this plugin. Simply clone the repository at GitHub:http://github.com/dim/retrospectiva.markup_extensions and start hacking! Once you like what you have done, please send me a _Pull request_.
</content>
    <created-at type="datetime">2009-10-18T11:10:03+01:00</created-at>
    <title>Markup Extensions</title>
    <updated-at type="datetime">2009-10-18T11:10:27+01:00</updated-at>
    <version type="integer">2</version>
  </wiki-page>
  <wiki-page>
    <author>Anonymous</author>
    <content>h3. WARNING! The scripts below are provided "as is" without warranty of any kind. Please use them at your own risk! Again, I will take NO responsibility for data losses, corruptions or any other damage.

h2. Scripts

* "Trac migration":http://retrospectiva.org/browse/tools/migration/trac.rb
* "Collaboa migration":http://retrospectiva.org/browse/tools/migration/collaboa_0.5.6_to_s43.rb
</content>
    <created-at type="datetime">2006-12-01T18:14:39+00:00</created-at>
    <title>Migration</title>
    <updated-at type="datetime">2007-11-30T19:34:24+00:00</updated-at>
    <version type="integer">9</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h3. Step 1: Install the passenger GEM

{{{
sudo gem install passenger
}}}

h3. Step 2: Install Nginx with Passenger module

{{{
sudo passenger-install-nginx-module 
}}}

This launches the interactive Passenger installation. Just follow the instructions! The procedure automatically detects the OS and check all requirements. If a potential problem is found, it provides a very detailed information about its resolution.

Check also out the "User Guide":http://modrails.org/documentation/Users%20guide%20Nginx.html for details and more advanced configuration options.
</content>
    <created-at type="datetime">2009-08-02T11:09:54+01:00</created-at>
    <title>Nginx Passenger configuration</title>
    <updated-at type="datetime">2009-08-02T11:09:54+01:00</updated-at>
    <version type="integer">1</version>
  </wiki-page>
  <wiki-page>
    <author>Mr Darrin Eden</author>
    <content>An "Opscode Chef":http://wiki.opscode.com/display/chef/Home based cookbook that installs and configures [[Retrospectiva]] using Nginx, Unicorn and PostgreSQL running on Ubuntu 9.10.

The more interesting bits are the "default recipe":http://github.com/dje/cookbooks/blob/master/retrospectiva/recipes/default.rb and the cookbook's "README":http://github.com/dje/cookbooks#readme.</content>
    <created-at type="datetime">2009-12-29T20:11:15+00:00</created-at>
    <title>Nginx Unicorn cookbook</title>
    <updated-at type="datetime">2009-12-29T20:11:15+00:00</updated-at>
    <version type="integer">1</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

The *OpenID Authentication* plugin adds "OpenID":http://en.wikipedia.org/wiki/OpenID support for your Retrospectiva installation.

* Allows users to login with their OpenID (instad of using their username and password)
* Allows users to register to your site directly through their OpenID Provider

h1. Installation

h3. Install GEM
{{{
sudo gem install ruby-openid 
}}}

h3. Download Extension
{{{
RAILS_ENV=production script/rxm download git://github.com/dim/retrospectiva.openid_auth.git
}}}

h3. Install Extension
{{{
RAILS_ENV=production script/rxm install openid_auth
}}}

h1. Screenshots

[[I:Screenshot_Extension_OpenIDAuth:OpenID Auth Screenshot]]

</content>
    <created-at type="datetime">2007-10-11T21:05:15+01:00</created-at>
    <title>OpenID Auth</title>
    <updated-at type="datetime">2009-06-13T13:01:38+01:00</updated-at>
    <version type="integer">14</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h3. Goals

* Simplicity
* Security
* Stability
* Usability
* Active development

h3. Features

The Retrospectiva software is divided in a core application and (un)installable external modules. It contains numerous features, including:

* Web based administration (Core)
** All parameters of a running installation can be maintained over a web interface
* Issue tracking (Core)
* Milestone/Release management (Core)
* Code browser (Core - uses Subversion)
* Search (Core)
* Changeset and revision management (Core)
* Wiki (extension)
* Announcement blog (extension)

*General features:*

* Retrospectiva is able to handle multiple project and repositories within one single installation
* Built-in multiple SPAM protection techniques
* Permission based access control
* Simple but effective extension interface</content>
    <created-at type="datetime">2006-12-01T16:06:52+00:00</created-at>
    <title>Quick facts</title>
    <updated-at type="datetime">2009-01-24T17:26:10+00:00</updated-at>
    <version type="integer">6</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>You can use Retrospectiva together with remote repositories. This is a short HOWTO about setting-up Retrospectiva with a repository stored at Google-Code, GitHub, etc. Although Retrospectiva is generally incapable of handling remote repositories (remote requests simply take too long) it has the built-in ability to synchronise remote repositories (keeping a local copy).

h1. GIT

Let&#8217;s assume that the remote repository URL is git://github.com/dim/retrospectiva.git and the local repository is in /var/git/retrospectiva.

Clone the remote repository:
{{{
git clone git://github.com/dim/retrospectiva.git /var/git/retrospectiva
}}}

h1. Subversion

Let&#8217;s assume that the remote repository URL is http://retrospectiva.googlecode.com/svn and the local repository is in /var/svn/retrospectiva.

Create a new local repository by calling:
{{{
svnadmin create /var/svn/retrospectiva
}}}

To enable synchronization, enable the pre-revprop-change hook:
{{{
cat &lt;&lt;'EOF' &gt; /var/svn/retrospectiva/hooks/pre-revprop-change
#!/bin/sh
exit 0
EOF
}}}

Make it executable:
{{{
chmod +x /var/svn/retrospectiva/hooks/pre-revprop-change
}}}

Please note that this is a very basic approach, so please refer to the Subversion documentation if you have special requirements for your hooks.

Initialize the repository for remote synchronization:
{{{
svnsync init file:///var/svn/retrospectiva http://retrospectiva.googlecode.com/svn
}}}

h1. Automatic Synchronisation

Configure Retrospectiva to perform the synchronisation automatically

* Login as an admin
* Go to Admin/Setup/Repositories
* Select (or create your repository), point the path to your local repository location
* Apply sync callback:
** GIT: cd /path/to/repository &amp;&amp; /usr/bin/git-pull
** Subversion: /usr/bin/svnsync sync file:///path/to/local/repository
** Optionally you can also specify additional parameters (e.g. username/password options, etc.)
* Go to Admin/Tasks and make sure the interval for the Sync repositories task is set-up correctly

</content>
    <created-at type="datetime">2009-02-06T07:55:33+00:00</created-at>
    <title>Remote repositories</title>
    <updated-at type="datetime">2009-12-02T11:47:00+00:00</updated-at>
    <version type="integer">2</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

The *RetroBlog* plugin allows you to:

* Make announcements
* Share your thoughts
* Keep in touch with your community

h1. Installation

In your Retrospectiva directory:

{{{
RAILS_ENV=production script/rxm install retro_blog
}}}

h1. Screenshot

[[I:Screenshot_Extension_RetroBlog01:RetroBlog Post]]
[[I:Screenshot_Extension_RetroBlog02:RetroBlog Edit]]
</content>
    <created-at type="datetime">2009-03-14T11:55:23+00:00</created-at>
    <title>RetroBlog</title>
    <updated-at type="datetime">2009-06-13T13:02:02+01:00</updated-at>
    <version type="integer">6</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Introduction

* [[Introduction|What is Retrospectiva?]]
* [[Who is using Retrospectiva]]


h1. Quick Start

* *Single-Step-Installation ([[Single-Step-Installer|Details]])*
** @curl http://retrospectiva.org/download/script/remote/retrospectiva_installer.rb | ruby@&lt;br/&gt;
   - or -&lt;br/&gt;
   @wget -O - http://retrospectiva.org/download/script/remote/retrospectiva_installer.rb | ruby@
* *Repository (GIT):*
** @git clone --depth 1 http://retrospectiva.org/repositories/retrospectiva.git@
** @git clone --depth 1 git://github.com/dim/retrospectiva.git@ (Mirror)
* *Code:* 
** http://retrospectiva.org/browse/
** http://github.com/dim/retrospectiva
* *Download*
** See "Here":http://github.com/dim/retrospectiva/downloads
* *Mailing list/Group:* 
** http://groups.google.com/group/retrospectiva-general



h1. Documentation

* [[Installation]] - a step-by-step installation guide
* [[Troubleshooting]] - if something is not working
* [[Deployment]] - how to deploy Retrospectiva
* [[Configuration]] - tips &amp; details
* [[Upgrading]] - how to upgrade to the current version
* [[Remote repositories|Using remote repositories]] - host your code on a different server (eg. Google Code)
* [[Subversion Support]] - using Subversion
* [[Installation On Windows]] - not recommended for production
* [[HOWTOs]] - HOWTOs &amp; other useful usage tips

h1. Extensions
* [[Extension Examples|Examples]]
* [[Extension Ideas|Ideas]] - Brainstorm Section for Extension Ideas
* [[AgilePM]] - Support your SCRUM/XP life-cycle
* [[RetroWiki]] - Share Files and Content, Manage Documentation
* [[RetroBlog]] - Announce and Interact
* [[LDAP Auth]] - Use LDAP/ActiveDirectory for authentication
* [[OpenID Auth]] - Authenticate via "OpenID":http://openid.net
* [[HTTP Auth]] - Use your web-server for authentication
* [[SCM Ticketing]] - Update tickets via SCM log messages
* [[SMTP-TLS]] - Use SMTP servers with TLS support
* [[Markup Extensions]] - Extend you markup vocabulary

h1. Development
* [[Getting Involved]]
* "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/
* [[Translations]]

h1. About

* [[Quick facts]]
* [[License]]
* [[Author]]

</content>
    <created-at type="datetime">2006-12-01T16:06:16+00:00</created-at>
    <title>Retrospectiva</title>
    <updated-at type="datetime">2009-12-29T13:22:36+00:00</updated-at>
    <version type="integer">82</version>
  </wiki-page>
  <wiki-page>
    <author>Dimitrij Denissenko</author>
    <content>h1. Details

The *RetroWiki* plugin adds a simple and powerful Wiki component to your Retrospectiva.

* Manage Content and Files
* Organise your Documentation

h1. Installation

In your Retrospectiva directory:

{{{
RAILS_ENV=production script/rxm install retro_wiki
}}}

h1. Screenshots

[[I:Screenshot_Extension_RetroWiki:RetroWiki Screenshot]]
</content>
    <created-at type="datetime">2009-03-14T11:48:23+00:00</created-at>
    <title>RetroWiki</title>
    <updated-at type="datetime">2009-06-13T13:02:24+01:00</updated-at>
    <version type="integer">4</version>
  </wiki-page>
</wiki-pages>
