<p dir="ltr">Hi Roger,</p>
<p dir="ltr">Nice, thanks for your efforts. Before we proceed too far down the submodules road though, I am curious how it compares to the use of git subtree, a relatively newer approach to this problem. Josh Moore and I briefly discussed it when I last visited; Josh, do you remember the name of the project you cited that is structured that way?</p>

<p dir="ltr">Regards,<br>
Curtis<br>
</p>
<div class="gmail_quote">On Aug 4, 2013 5:31 PM, &quot;Roger Leigh&quot; &lt;<a href="mailto:rleigh@dundee.ac.uk">rleigh@dundee.ac.uk</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I&#39;ve been thinking a little bit about how we might be able to better<br>
modularise things so that individual components could be built<br>
separately, independently released and used by others without having to<br>
build all of bio-formats, but also still allowing the existing setup to<br>
be used.  I&#39;ve recently been looking at Qt, and their repo at<br>
<a href="http://qt.gitorious.org/" target="_blank">http://qt.gitorious.org/</a> (git://<a href="http://gitorious.org/qt/qt5.git" target="_blank">gitorious.org/qt/qt5.<u></u>git</a>) contains 34<br>
submodules referenced by this tiny top-level repo; run the<br>
&quot;init-repository&quot; script to set it all up.  Qt is huge, with each<br>
component being an entire project in its own right.  You can clone and<br>
build each separately, or as a whole by cloning the toplevel container repo.<br>
<br>
I&#39;ve made a test repository using this one component per submodule<br>
scheme, which is here: <a href="https://github.com/rleigh-dundee/bioformats5" target="_blank">https://github.com/rleigh-<u></u>dundee/bioformats5</a><br>
(<a href="https://github.com/rleigh-dundee/bioformats5.git" target="_blank">https://github.com/rleigh-<u></u>dundee/bioformats5.git</a>); you can see all the<br>
dependent submodules here:<br>
<a href="https://github.com/rleigh-dundee?tab=repositories" target="_blank">https://github.com/rleigh-<u></u>dundee?tab=repositories</a> (they have a<br>
&quot;bioformats5-&quot; prefix).<br>
<br>
After cloning, you just need to do a &quot;git submodule init; git submodule<br>
update&quot; to set it all up.  There are 23 components in total.  We could<br>
also split out the junk like the binary jars into a submodule as well.<br>
<br>
This was done in a very simplistic way, one submodule per component with<br>
a pom.xml.  It may not be the ideal arrangement, it&#39;s just a proof of<br>
concept.  Each submodule was generated from current develop with<br>
&quot;git filter-branch --tag-name-filter cat --prune-empty<br>
--subdirectory-filter components/test-suite HEAD&quot;.  The top-level is<br>
just the current develop with the components deleted and replaced by the<br>
corresponding submodule.  But the top-level could be replaced with a new<br>
repo which would drop all the history duplicated in the submodules.  Or<br>
we could have multiple toplevels with different selections of<br>
submodules, which would allow old, unused components to be dropped.<br>
<br>
This scheme could also allow openmicroscopy.git to include the set of<br>
specific bioformats components it needs, rather than the bioformats<br>
submodule used currently.  And it could itself be split up into<br>
submodules per component in the same manner, though this would require<br>
some preparatory refactoring.<br>
<br>
<br>
Regards,<br>
Roger<br>
<br>
--<br>
Dr Roger Leigh -- Open Microscopy Environment<br>
Wellcome Trust Centre for Gene Regulation and Expression,<br>
College of Life Sciences, University of Dundee, Dow Street,<br>
Dundee DD1 5EH Scotland UK   Tel: (01382) 386364<br>
<br>
The University of Dundee is a registered Scottish Charity, No: SC015096<br>
<br>
______________________________<u></u>_________________<br>
ome-devel mailing list<br>
<a href="mailto:ome-devel@lists.openmicroscopy.org.uk" target="_blank">ome-devel@lists.<u></u>openmicroscopy.org.uk</a><br>
<a href="http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel" target="_blank">http://lists.openmicroscopy.<u></u>org.uk/mailman/listinfo/ome-<u></u>devel</a><br>
</blockquote></div>