<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: The Holy Grail of Kickass API Documentation</title>
	<atom:link href="http://helderribeiro.net/?feed=rss2&#038;p=236" rel="self" type="application/rss+xml" />
	<link>http://helderribeiro.net/?p=236</link>
	<description>Freedom on all levels.</description>
	<lastBuildDate>Mon, 09 Aug 2010 13:57:04 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
	<item>
		<title>By: obvio171</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-60</link>
		<dc:creator>obvio171</dc:creator>
		<pubDate>Mon, 03 Aug 2009 21:52:57 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-60</guid>
		<description>Damn it. Now I have no excuse to offload this to you guys :P</description>
		<content:encoded><![CDATA[<p>Damn it. Now I have no excuse to offload this to you guys :P</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeffrafter</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-59</link>
		<dc:creator>jeffrafter</dc:creator>
		<pubDate>Mon, 03 Aug 2009 21:49:38 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-59</guid>
		<description>Lots to digest here but I see where you are going. I think it will be hard to know which one will work better in practice until we try it :) &lt;br&gt;&lt;br&gt;I get what you are saying about over-forking being a problem, and I see how rdoc.info could maintain its own forks (I suppose these would live in the github.com/docs account we have setup).&lt;br&gt;&lt;br&gt;In terms of opensourcing... we did it from day one :) &lt;a href=&quot;http://github.com/zapnap/rdocinfo&quot; rel=&quot;nofollow&quot;&gt;http://github.com/zapnap/rdocinfo&lt;/a&gt;. Fork away and implement this feature! ;)</description>
		<content:encoded><![CDATA[<p>Lots to digest here but I see where you are going. I think it will be hard to know which one will work better in practice until we try it :) </p>
<p>I get what you are saying about over-forking being a problem, and I see how rdoc.info could maintain its own forks (I suppose these would live in the github.com/docs account we have setup).</p>
<p>In terms of opensourcing&#8230; we did it from day one :) <a href="http://github.com/zapnap/rdocinfo" rel="nofollow">http://github.com/zapnap/rdocinfo</a>. Fork away and implement this feature! ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: obvio171</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-58</link>
		<dc:creator>obvio171</dc:creator>
		<pubDate>Mon, 03 Aug 2009 20:22:41 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-58</guid>
		<description>Oh wait. I need to clarify the difference between the &quot;no-hostages&quot; thing with the &quot;which version to display by default&quot; thing.&lt;br&gt;&lt;br&gt;When you go to the docs for a repository, you see the *latest possible version*, regardless where it came from. If that&#039;s the owner&#039;s latest commit, you see that. If it&#039;s a wiki edit after that latest owner commit, you see the wiki version. That&#039;s the &quot;which version to display by default&quot; thing.&lt;br&gt;&lt;br&gt;The &quot;no-hostages&quot; thing is the opposite of what you thought. When the owner commits something, *that* becomes the latest version. The previous wiki edit is moved to the history, and the owner&#039;s version is displayed (which is the same as saying that, in the merge, all conflicts are resolved *in favor of the owner*.)&lt;br&gt;&lt;br&gt;Of course that, for repositories that were put in rdoc.info by someone other than the owner, it would be frustrating for wiki editors to see their changes being clobbered by commits from the oblivious owner all the time (even though still recoverable from the history). That&#039;s why I suggested that wiki editing be opt-in by the owner.&lt;br&gt;&lt;br&gt;One problem with the workflow you suggested is that it creates a multi-headed wiki, without a clear linear history. And if you don&#039;t show the latest edit immediately (instead waiting before the owner folds them in), there&#039;s a higher chance that people will step on each other&#039;s toes, fixing the same typo or editing the same line multiple times. The longer feedback cycle makes conflicts more likely and integration more difficult. Worse than that, the workflow is incompatible with the way rdoc.info tracks documentation.&lt;br&gt;&lt;br&gt;Rdoc.info tracks documentation *per-fork*, independently. Take &lt;a href=&quot;http://rdoc.info/projects/search?q=delayed_job&quot; rel=&quot;nofollow&quot;&gt;http://rdoc.info/projects/search?q=delayed_job&lt;/a&gt;, for example. I keep a fork of delayed_job because I have a feature there that is not present in other forks. According to your workflow, if I edit the docs for helder-delayed_job to describe my feature, collectiveidea and tobi are going to get pull requests for that change, which doesn&#039;t make sense. And if I want to edit *their* docs (maybe I found a typo in the docs for a feature they have and I don&#039;t), that change will be committed to *my* fork, which doesn&#039;t make sense either. Also, this workflow requires that a user have a github account and fork the repository just to make a simple edit. Unnecessary forking polutes the network and your fork list -- I&#039;d rather have forks only for projects I&#039;m doing significant contributions to.&lt;br&gt;&lt;br&gt;What we need is one linear (centralized) doc history *per fork*. So you&#039;d have separate doc histories for helder-delayed_job and tobi-delayed_job, etc, which everyone could individually edit without needing to fork it themselves, or without affecting their own fork in case they had one. &lt;br&gt;&lt;br&gt;My original idea actually falls short here as well, as the rdoc.info user can&#039;t fork different repositories *of the same project*. So patch my idea with:&lt;br&gt;-Rdoc.info forks your repository and commits every wiki edit to that fork.&lt;br&gt;+Rdoc.info forks your repository (if it hasn&#039;t already), *creates a branch to track your fork* (named, say, &quot;helder-docs&quot;) and commits every wiki edit to that branch.&lt;br&gt;&lt;br&gt;So if I go to the docs for tobi-delayed_job, what I&#039;m seeing and editing is always the head of the tobi-docs branch in rdoc.info&#039;s fork of delayed_job (github.com/docs/delayed_job/tree/tobi-docs).&lt;br&gt;&lt;br&gt;If it&#039;s the docs for my own fork, edits go to helder/delayed_job/docs, which gets picked up by rdoc.info and merged back into docs/delayed_job/helder-docs.&lt;br&gt;&lt;br&gt;I don&#039;t know if I made this sound too confusing, but it&#039;s actually quite simple :) We can schedule a skype talk if you want so I can explain this better (I&#039;m obvio171).&lt;br&gt;&lt;br&gt;Btw, do you guys consider opensourcing rdoc.info? ;)</description>
		<content:encoded><![CDATA[<p>Oh wait. I need to clarify the difference between the &#8220;no-hostages&#8221; thing with the &#8220;which version to display by default&#8221; thing.</p>
<p>When you go to the docs for a repository, you see the *latest possible version*, regardless where it came from. If that&#39;s the owner&#39;s latest commit, you see that. If it&#39;s a wiki edit after that latest owner commit, you see the wiki version. That&#39;s the &#8220;which version to display by default&#8221; thing.</p>
<p>The &#8220;no-hostages&#8221; thing is the opposite of what you thought. When the owner commits something, *that* becomes the latest version. The previous wiki edit is moved to the history, and the owner&#39;s version is displayed (which is the same as saying that, in the merge, all conflicts are resolved *in favor of the owner*.)</p>
<p>Of course that, for repositories that were put in rdoc.info by someone other than the owner, it would be frustrating for wiki editors to see their changes being clobbered by commits from the oblivious owner all the time (even though still recoverable from the history). That&#39;s why I suggested that wiki editing be opt-in by the owner.</p>
<p>One problem with the workflow you suggested is that it creates a multi-headed wiki, without a clear linear history. And if you don&#39;t show the latest edit immediately (instead waiting before the owner folds them in), there&#39;s a higher chance that people will step on each other&#39;s toes, fixing the same typo or editing the same line multiple times. The longer feedback cycle makes conflicts more likely and integration more difficult. Worse than that, the workflow is incompatible with the way rdoc.info tracks documentation.</p>
<p>Rdoc.info tracks documentation *per-fork*, independently. Take <a href="http://rdoc.info/projects/search?q=delayed_job" rel="nofollow">http://rdoc.info/projects/search?q=delayed_job</a>, for example. I keep a fork of delayed_job because I have a feature there that is not present in other forks. According to your workflow, if I edit the docs for helder-delayed_job to describe my feature, collectiveidea and tobi are going to get pull requests for that change, which doesn&#39;t make sense. And if I want to edit *their* docs (maybe I found a typo in the docs for a feature they have and I don&#39;t), that change will be committed to *my* fork, which doesn&#39;t make sense either. Also, this workflow requires that a user have a github account and fork the repository just to make a simple edit. Unnecessary forking polutes the network and your fork list &#8212; I&#39;d rather have forks only for projects I&#39;m doing significant contributions to.</p>
<p>What we need is one linear (centralized) doc history *per fork*. So you&#39;d have separate doc histories for helder-delayed_job and tobi-delayed_job, etc, which everyone could individually edit without needing to fork it themselves, or without affecting their own fork in case they had one. </p>
<p>My original idea actually falls short here as well, as the rdoc.info user can&#39;t fork different repositories *of the same project*. So patch my idea with:<br />-Rdoc.info forks your repository and commits every wiki edit to that fork.<br />+Rdoc.info forks your repository (if it hasn&#39;t already), *creates a branch to track your fork* (named, say, &#8220;helder-docs&#8221;) and commits every wiki edit to that branch.</p>
<p>So if I go to the docs for tobi-delayed_job, what I&#39;m seeing and editing is always the head of the tobi-docs branch in rdoc.info&#39;s fork of delayed_job (github.com/docs/delayed_job/tree/tobi-docs).</p>
<p>If it&#39;s the docs for my own fork, edits go to helder/delayed_job/docs, which gets picked up by rdoc.info and merged back into docs/delayed_job/helder-docs.</p>
<p>I don&#39;t know if I made this sound too confusing, but it&#39;s actually quite simple :) We can schedule a skype talk if you want so I can explain this better (I&#39;m obvio171).</p>
<p>Btw, do you guys consider opensourcing rdoc.info? ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeffrafter</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-54</link>
		<dc:creator>jeffrafter</dc:creator>
		<pubDate>Sun, 02 Aug 2009 23:01:34 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-54</guid>
		<description>I think I am still a little confused on the &quot;no-hostages&quot; approach. Many of the projects hosted on rdoc.info were put there by people other than the project owner. It is likely that the owner will make a change after the wiki edit which will conflict. It seems like choosing the wiki version outright is dangerous... the owner may have changed the documentation because the implementation of a method changed... in which case you wouldn&#039;t want to save the wiki edit. It seems like the owner version needs to always be the one that shows. &lt;br&gt;&lt;br&gt;In our version, instead of maintaining a separate branch you do exactly what github encourages you to do and maintain a separate fork (which is just an ad-hoc kind of branching). When you make a change, we should do the following:&lt;br&gt;&lt;br&gt;(1) If you a committer on the project (or owner): automatically commit the change that you make to the wiki style interface. This is the easiest thing.&lt;br&gt;&lt;br&gt;(2) If you not a committer: fork the repo, but not as the rdoc.info user... as the current user (we will need to connect the github user to the rdoc.info user). Then make the commit to that fork and redirect from the current docs view to the users new forked version of the docs (which we auto-generate). Send a pull request.&lt;br&gt;&lt;br&gt;(3) Modify the interface to list related forks, revisions, and tags. This is planned already, but would become pretty important.&lt;br&gt;&lt;br&gt;Does that workflow make sense?</description>
		<content:encoded><![CDATA[<p>I think I am still a little confused on the &#8220;no-hostages&#8221; approach. Many of the projects hosted on rdoc.info were put there by people other than the project owner. It is likely that the owner will make a change after the wiki edit which will conflict. It seems like choosing the wiki version outright is dangerous&#8230; the owner may have changed the documentation because the implementation of a method changed&#8230; in which case you wouldn&#39;t want to save the wiki edit. It seems like the owner version needs to always be the one that shows. </p>
<p>In our version, instead of maintaining a separate branch you do exactly what github encourages you to do and maintain a separate fork (which is just an ad-hoc kind of branching). When you make a change, we should do the following:</p>
<p>(1) If you a committer on the project (or owner): automatically commit the change that you make to the wiki style interface. This is the easiest thing.</p>
<p>(2) If you not a committer: fork the repo, but not as the rdoc.info user&#8230; as the current user (we will need to connect the github user to the rdoc.info user). Then make the commit to that fork and redirect from the current docs view to the users new forked version of the docs (which we auto-generate). Send a pull request.</p>
<p>(3) Modify the interface to list related forks, revisions, and tags. This is planned already, but would become pretty important.</p>
<p>Does that workflow make sense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: obvio171</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-52</link>
		<dc:creator>obvio171</dc:creator>
		<pubDate>Sun, 02 Aug 2009 03:33:58 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-52</guid>
		<description>I see what you mean, but I think just letting visitors add notes and requiring that someone else adapt it to the documentation and commit it is still too much trouble. And even if it weren&#039;t, this model basically covers edits which would add _new_ stuff, like &quot;hey, you forgot to mention this and that&quot;. &lt;br&gt;&lt;br&gt;It still doesn&#039;t cover some classes of edits like correcting typos, grammar, reorganizing text to improve how it&#039;s structured, and rewriting parts to improve clarity. Notes basically add coverage, but don&#039;t improve quality.&lt;br&gt;&lt;br&gt;Opensourcing APIdock is great news! I haven&#039;t been following it too closely, so I hadn&#039;t heard of this. The whole auto-fork thing needed to implement wiki editing is indeed not trivial, but I think it would be a great thing to have.</description>
		<content:encoded><![CDATA[<p>I see what you mean, but I think just letting visitors add notes and requiring that someone else adapt it to the documentation and commit it is still too much trouble. And even if it weren&#39;t, this model basically covers edits which would add _new_ stuff, like &#8220;hey, you forgot to mention this and that&#8221;. </p>
<p>It still doesn&#39;t cover some classes of edits like correcting typos, grammar, reorganizing text to improve how it&#39;s structured, and rewriting parts to improve clarity. Notes basically add coverage, but don&#39;t improve quality.</p>
<p>Opensourcing APIdock is great news! I haven&#39;t been following it too closely, so I hadn&#39;t heard of this. The whole auto-fork thing needed to implement wiki editing is indeed not trivial, but I think it would be a great thing to have.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: obvio171</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-51</link>
		<dc:creator>obvio171</dc:creator>
		<pubDate>Sun, 02 Aug 2009 03:23:11 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-51</guid>
		<description>The model I mentioned for the edit history above takes care of this. For repositories that choose to allow wiki editing, the default commit shown wouldn&#039;t be the most recent from the owner, but the most recent wiki commit (which, by definition, would be ahead of the latest owner commit). The wiki history would be like:&lt;br&gt;edit - edit - merge from owner - edit - merge from owner - edit - edit&lt;br&gt;&lt;br&gt;And new changes would be instantly visible. The latest owner version will still be reachable from the history, and you can make it somehow visible to the visitor if they&#039;re seeing a page with changes that weren&#039;t yet folded in, linking to the latest pristine copy.</description>
		<content:encoded><![CDATA[<p>The model I mentioned for the edit history above takes care of this. For repositories that choose to allow wiki editing, the default commit shown wouldn&#39;t be the most recent from the owner, but the most recent wiki commit (which, by definition, would be ahead of the latest owner commit). The wiki history would be like:<br />edit &#8211; edit &#8211; merge from owner &#8211; edit &#8211; merge from owner &#8211; edit &#8211; edit</p>
<p>And new changes would be instantly visible. The latest owner version will still be reachable from the history, and you can make it somehow visible to the visitor if they&#39;re seeing a page with changes that weren&#39;t yet folded in, linking to the latest pristine copy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Otto Hilska</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-50</link>
		<dc:creator>Otto Hilska</dc:creator>
		<pubDate>Sat, 01 Aug 2009 19:03:43 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-50</guid>
		<description>Hi, this is Otto from APIdock. I&#039;m replying here instead of private e-mail.&lt;br&gt;&lt;br&gt;When we were initially writing APIdock, having the wiki-style editing seemed like core functionality. However, after we had run the site for a while, it occured to me that wiki-editing doesn&#039;t actually solve the problem.&lt;br&gt;&lt;br&gt;The #1 priority is to lower the barrier of contributing - and that&#039;s exactly what user-generated notes are good at. However, many of them are not directly ready to be used in official documentation.&lt;br&gt;&lt;br&gt;So far it has been easier to pick the good stuff from notes and commit it to lifo&#039;s docrails Git repository. We&#039;re hoping to improve this in the future.&lt;br&gt;&lt;br&gt;There are some plans about opensourcing APIdock, so theoretically it would be possible for anyone to add the wiki editing functionality. But still, I don&#039;t think it would be so much better than simply committing to docrails.</description>
		<content:encoded><![CDATA[<p>Hi, this is Otto from APIdock. I&#39;m replying here instead of private e-mail.</p>
<p>When we were initially writing APIdock, having the wiki-style editing seemed like core functionality. However, after we had run the site for a while, it occured to me that wiki-editing doesn&#39;t actually solve the problem.</p>
<p>The #<a href="http://search.twitter.com/search?q=%231" rel="nofollow" target="_blank" title="Search Twitter for &quot;1&quot;">1</a> priority is to lower the barrier of contributing &#8211; and that&#39;s exactly what user-generated notes are good at. However, many of them are not directly ready to be used in official documentation.</p>
<p>So far it has been easier to pick the good stuff from notes and commit it to lifo&#39;s docrails Git repository. We&#39;re hoping to improve this in the future.</p>
<p>There are some plans about opensourcing APIdock, so theoretically it would be possible for anyone to add the wiki editing functionality. But still, I don&#39;t think it would be so much better than simply committing to docrails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeffrafter</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-49</link>
		<dc:creator>jeffrafter</dc:creator>
		<pubDate>Sat, 01 Aug 2009 16:33:40 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-49</guid>
		<description>Reading through your post this is very similar to something nick and I&lt;br&gt;batted back and forth when we were making the site. In general we had&lt;br&gt;considered taking this even further by doing cross site commits and which would make use of github&#039;s already existing web-based commit system. This was more apparent when we made &lt;a href=&quot;http://docs.github.com&quot; rel=&quot;nofollow&quot;&gt;http://docs.github.com&lt;/a&gt; (the rdoc.info mirror on GitHub). Auto-forking is of course a much more in depth part of that. Also, keep in mind that we store docs for every revision of a project... so it is possible that the default commit (the most recent) may not show your changes until they are accepted and folded in. How would you handle that?</description>
		<content:encoded><![CDATA[<p>Reading through your post this is very similar to something nick and I<br />batted back and forth when we were making the site. In general we had<br />considered taking this even further by doing cross site commits and which would make use of github&#39;s already existing web-based commit system. This was more apparent when we made <a href="http://docs.github.com" rel="nofollow">http://docs.github.com</a> (the rdoc.info mirror on GitHub). Auto-forking is of course a much more in depth part of that. Also, keep in mind that we store docs for every revision of a project&#8230; so it is possible that the default commit (the most recent) may not show your changes until they are accepted and folded in. How would you handle that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Helder Ribeiro (obvio171) 's status on Friday, 31-Jul-09 15:23:59 UTC - Identi.ca</title>
		<link>http://helderribeiro.net/?p=236&#038;cpage=1#comment-48</link>
		<dc:creator>Helder Ribeiro (obvio171) 's status on Friday, 31-Jul-09 15:23:59 UTC - Identi.ca</dc:creator>
		<pubDate>Fri, 31 Jul 2009 15:24:13 +0000</pubDate>
		<guid isPermaLink="false">http://helderribeiro.net/?p=236#comment-48</guid>
		<description>[...]  http://helderribeiro.net/?p=236  [...]</description>
		<content:encoded><![CDATA[<p>[...]  <a href="http://helderribeiro.net/?p=236" rel="nofollow">http://helderribeiro.net/?p=236</a>  [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
