<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Self As Team &#187; documentation</title>
	<atom:link href="http://blog.intraspectivecorp.com/tag/documentation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intraspectivecorp.com</link>
	<description>Dallas based Ruby on Rails and Java Consulting</description>
	<lastBuildDate>Mon, 21 Sep 2009 02:06:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Automatic Project Documentation</title>
		<link>http://blog.intraspectivecorp.com/2008/08/05/automatic-project-documentation/</link>
		<comments>http://blog.intraspectivecorp.com/2008/08/05/automatic-project-documentation/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 11:16:10 +0000</pubDate>
		<dc:creator>David Hainlin</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://blog.intraspectivecorp.com/?p=12</guid>
		<description><![CDATA[I&#8217;m a big believer in project transparency.  I also like to utilize a hub and spoke model where a central project intranet site is available for the team to pull from rather than relying on emails or file stores.  A simple wiki with a landing page is all you really need.  Especially [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a big believer in project transparency.  I also like to utilize a hub and spoke model where a central project intranet site is available for the team to pull from rather than relying on emails or file stores.  A simple wiki with a landing page is all you really need.  Especially if your client is phobic about using hosted tools (e.g., Mingle/Campfile).  With a team portal, keeping the content up to date should be automatic if the content is derived from your code. Wouldn&#8217;t it be nice if documentation about your project was always up to date?  Wouldn&#8217;t it be even nicer if this documentation could include easy to digest change logs, list of todos/notes and other information?  Well, this post will show you how easy it is to do just that.</p>
<p><span id="more-12"></span></p>
<p>What am I talking about? I&#8217;ll use the work I&#8217;m currently doing for my client to illustrate.  We have a rails RDOC oriented README_FOR_APP page that has includes for things like change log, metrics, notes/todos and the like.  These elements are built by our cruise control process (we simply added a few extra statements in the rake file that cruse fires off).<br />
Ok so how hard is this to do?</p>
<p>The answer is it is very simple. Here is the blow by blow&#8230;</p>
<p>1. set you project up to run under cruise control.</p>
<p>2. By default, cruise wants to run your <code>rake test</code> task.  So you need to create a new super task for cruise to run. In you project Rakefile, add a new build task  to run your tests and then generate the documentation.</p>
<p>3. Edit your <code><strong>doc/README_FOR_APP</strong></code> with useful information.  When you want to include some of the generated files like the changelog, you simply add <code>:include:filename</code>.  As an example, here is the project readme file&#8230;</p>
<pre>= Some Project - Prototype
You can visit the current prototype by going to our
demo [http://url.to.the.site/] site.

== Notes

:include:notes.txt

== Statistics

:include:stats.txt

(LOC = Lines of Code)

== CHANGELOG

:include:CHANGELOG</pre>
<p>Pretty simple&#8230;</p>
<p>4. Modify cruise to use your new rake task.</p>
<p>5. Set up a symlink in project facing web server directory to point to your cruise directory. For example in ~dhainlin/public_html I did something like <code>ln -s /var/cruise/cruisecontrolrb-1.2.1/projects/sample/work sample</code> which created a directory called sample.  This essentially creates a permalink for your project documentation.</p>
<p>6. Browse to your new docs and enjoy fresh, always current information.</p>
<p>Hope this is useful. If you have questions or problems, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intraspectivecorp.com/2008/08/05/automatic-project-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
