<div dir="ltr"><div class="gmail_default" style="font-size:small">On Mon, Feb 13, 2017 at 7:26 PM, R. Matthew Emerson <span dir="ltr"><<a href="mailto:rme@acm.org" target="_blank">rme@acm.org</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
</span>In the Subversion world, sure, we could tag an old release, and that would include suitable bootstrapping binaries and interface databases.<br>
<br>
In the git world, a tag (as I understand it) is essentially a pointer to a particular commit. It is still necessary to have suitable bootstrapping binaries that will work to compile the sources at that point in time. As a concrete example of what I mean by this, note that a current development ccl (i.e., 1.12-dev) can't build a ccl from the 1.11 sources.<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">This suggests a solution to me.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">CCL would have two GIT repositories:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">1) Source code, tagged with releases, branched with patches for particular releases. Move its tag when you add a bug-fix patch to a release.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">2) Binaries. Branched from the beginning with one branch per platform. Tagged to match the source tags, but with unique names for each branch:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">1) Tags: 1.9, 1.10, 1.11</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">2) Branches: darwinx86, linuxarm, linuxppc, linuxx86, solarisx86, windows</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><branch>: <tag>…</div><div class="gmail_default" style="font-size:small">darwinx86: 1.9-dx86, 1.10-dx86, 1.11-dx86</div><div class="gmail_default" style="font-size:small">linuxarm: 1.9-armcl, 1.10-armcl, 1.11-armcl</div><div class="gmail_default" style="font-size:small">linuxppc: 1.9-pp, 1.10-pp, 1.11-pp</div><div class="gmail_default" style="font-size:small">linuxx86: 1.9-lx86, 1.10-lx86, 1.11-lx86</div><div class="gmail_default" style="font-size:small">solarisx86: 1.9-sx86, 1.10-sx86, 1.11-sx86</div><div class="gmail_default" style="font-size:small">windows: 1.9-wx86, 1.10-wx86, 1.11-wx86</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This would allow you to put the two directories side-by-side, and, on the linux-like platforms, have symbolic links from the source directory reference the binaries in the binary directory:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">ccl/</div><div class="gmail_default" style="font-size:small"> trunk/ # Source for master branch</div><div class="gmail_default" style="font-size:small"> lx86cl -> ../trunk-bin/lx86cl</div><div class="gmail_default" style="font-size:small"> lx86cl.image -> ../trunk/bin/lx86cl.image</div><div class="gmail_default" style="font-size:small"> lx86cl64 -> ../trunk-bin/lx86cl64</div><div class="gmail_default" style="font-size:small"> lx86cl64.image -> ../trunk-bin/lx86cl64.image</div><div class="gmail_default" style="font-size:small"> trunk-bin/ # Binaries for master branch</div><div class="gmail_default" style="font-size:small"> lx86cl</div><div class="gmail_default" style="font-size:small"> lx86cl.image</div><div class="gmail_default" style="font-size:small"> lx86cl64</div><div class="gmail_default" style="font-size:small"> lx86cl64.image</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">We could have a script to run in the source directory to create the symbolic links from <dir>/foo to ../<dir>-bin/foo</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">One remaining issue is what to do with the header directories. We could either just have everybody always download all of them with the source, or put them with the binaries and use symbolic links from the source directory to get to them in the binary directory.</div><div class="gmail_default" style="font-size:small"> </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div></div></div></div>