<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groups.drupal.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>API module developers</title>
 <link>http://groups.drupal.org/api-module-developers</link>
 <description>People interested in the development of API module</description>
 <language>en</language>
<item>
 <title>Documenting contributions modules and themes</title>
 <link>http://groups.drupal.org/node/11263</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://lists.drupal.org/pipermail/development/2008-May/029761.html&quot; title=&quot;http://lists.drupal.org/pipermail/development/2008-May/029761.html&quot;&gt;http://lists.drupal.org/pipermail/development/2008-May/029761.html&lt;/a&gt; clearly demonstrates that documenting all of contributions on api.drupal.org would be good.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add concept of projects&lt;/strong&gt; every project has its own code and set of branches. This should be clear in both the database and UI.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Programmatically manage branch checkouts&lt;/strong&gt; managing a lot of CVS checkouts would be tedious.&lt;/p&gt;
&lt;p&gt;I researched speaking the CVS protocol to directly query the server. This would be tedious to write and might be hard to debug. Documentation on how to get the relevant documentation is at &lt;a href=&quot;http://ximbiot.com/cvs/cvshome/cyclic/cvs/dev-res.html&quot; title=&quot;http://ximbiot.com/cvs/cvshome/cyclic/cvs/dev-res.html&quot;&gt;http://ximbiot.com/cvs/cvshome/cyclic/cvs/dev-res.html&lt;/a&gt;. I think it is best to keep checkouts in the filesystem.&lt;/p&gt;
&lt;p&gt;Three types of branch management should exist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Filesystem, same as we do now, parse what is at the specified path.&lt;/li&gt;
&lt;li&gt;CVS, programmatically make/update a CVS checkout to the files directory using CVS root, CVS module, path, tag, etc. See &lt;a href=&quot;http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/project/release/package-release-nodes.php?view=log&quot; title=&quot;http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/project/release/package-release-nodes.php?view=log&quot;&gt;http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/project/rel...&lt;/a&gt; for an example of Drupal code doing this.&lt;/li&gt;
&lt;li&gt;SVN, lots of people use it for internal projects, API module should support it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Programmatically create branch checkouts&lt;/strong&gt; use update status XML, for example &lt;a href=&quot;http://updates.drupal.org/release-history/api/5.x&quot; title=&quot;http://updates.drupal.org/release-history/api/5.x&quot;&gt;http://updates.drupal.org/release-history/api/5.x&lt;/a&gt;, to find and create project branches.&lt;/p&gt;
&lt;h2&gt;What can be done now:&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Update to Drupal 6. All menu changes should happen after this.&lt;/li&gt;
&lt;li&gt;Mock-up UI changes for project navigation and other additional UI elements.&lt;/li&gt;
&lt;li&gt;Clean up admin screen. It will have to scale a lot more.&lt;/li&gt;
&lt;li&gt;Try running API module with modules you use. Pay attention to what works and what is annoying, report your findings here.&lt;/li&gt;
&lt;li&gt;Establish standards for hook and @mainpage documentation in contributions.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/api-module-developers&quot;&gt;API module developers&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11263#comments</comments>
 <group domain="http://groups.drupal.org/api-module-developers" xmlns="http://drupal.org/project/og">API module developers</group>
 <pubDate>Tue, 06 May 2008 20:08:29 +0000</pubDate>
 <dc:creator>Neil Drumm</dc:creator>
 <guid isPermaLink="false">11263 at http://groups.drupal.org</guid>
</item>
<item>
 <title>6.x Upgrade Roadmap</title>
 <link>http://groups.drupal.org/node/8970</link>
 <description>&lt;p&gt;There have been &lt;a href=&quot;http://drupal.org/node/196723&quot; rel=&quot;nofollow&quot;&gt;various attempts&lt;/a&gt; at upgrading api.module to Drupal 6.x. However, it is a complex module, and until now, none of the attempts has yielded satisfying results. We now have the situation that there are 16 patches in the patch queue, none of them thoroughly reviewed, leaving anyone trying to help on this issue without much help and probably causing her to start from scratch again (at least thats what happened to me). Thats why i think we need to break down this issue into smaller tasks. Smaller tasks can more easily be solved, tested, and reviewed. After a subtask is finished, it can be commited to CVS HEAD, giving anyone else a solid starting point for further tasks, without worrying about the base she is working on.&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Tasks&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;api.info. trivial.&lt;/li&gt;
&lt;li&gt;api.install. there are 6 patches for this in the queue. to be tested, reviewed, committed.&lt;/li&gt;
&lt;li&gt;api.module. the beast. i think this needs at least 2 subtasks:
&lt;ul&gt;
&lt;li&gt;general Drupal 6 compatibility. for this i would recommend installing &lt;a href=&quot;http://drupal.org/project/coder&quot; rel=&quot;nofollow&quot;&gt;coder.module&lt;/a&gt;, checking &quot;Converting 5.x modules to 6.x&quot;, and fixing all there errors appearing there. note that even if coder doesn&#039;t indicate errors anymore, it probably can still be improved or coded more elegantly.&lt;/li&gt;
&lt;li&gt;api_menu(). i think the way to go for api_menu() is a complete rewrite. it is grown organically and currently exposes 24 menu entries, many of them dynamic. while it would be possible to make it Drupal 6 compatible with some big regular expressions (i did), i think the clean way is to completely overhaul it and use Drupal 6&#039;s &lt;a href=&quot;http://drupal.org/node/209056&quot; rel=&quot;nofollow&quot;&gt;Dynamic Arguments (Wildcards)&lt;/a&gt; and &lt;a href=&quot;http://drupal.org/node/109584&quot; rel=&quot;nofollow&quot;&gt;Inheritance rules&lt;/a&gt; properly (if i would know how to do this, i would have done it :S).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;parser.inc
&lt;ul&gt;
&lt;li&gt;mostly &quot;general Drupal 6 compatibility&quot;, see above.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Issues and patches for these subtasks should be filed separately with the prefix &quot;Drupal 6: &quot;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Future work&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows compatibility. Api.module currently doesn&#039;t work on windows because it uses linux path conventions. To enable windows users to help in the upgrade, (part of) &lt;a href=&quot;http://drupal.org/node/207365&quot; rel=&quot;nofollow&quot;&gt;my windows compatibilty patch&lt;/a&gt; should be committed.&lt;/li&gt;
&lt;li&gt;parser.inc should be cleaned up&lt;br /&gt;
+clearly separate parsing from database storage&lt;br /&gt;
+write unit tests for parsing functions&lt;br /&gt;
+maybe use a more lexical syntax analysis (probably using the &lt;a href=&quot;http://php.net/tokenizer&quot; rel=&quot;nofollow&quot;&gt;tokenizer extension&lt;/a&gt;) instead of relying completely on regular expressions&lt;br /&gt;
+maybe standardize common regular expression components&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/api-module-developers&quot;&gt;API module developers&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/api-module-developers" xmlns="http://drupal.org/project/og">API module developers</group>
 <pubDate>Mon, 18 Feb 2008 02:28:35 +0000</pubDate>
 <dc:creator>ax@drupal.org</dc:creator>
 <guid isPermaLink="false">8970 at http://groups.drupal.org</guid>
</item>
</channel>
</rss>
