<div dir="ltr"><br><div class="GmSign">-- <br></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jun 18, 2016 at 11:06 AM Ben Coman &lt;<a href="mailto:btc@openinworld.com">btc@openinworld.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On Sat, Jun 18, 2016 at 11:28 AM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Hi Ben,<br>
&gt;<br>
&gt; On Fri, Jun 17, 2016 at 8:27 AM, Ben Coman &lt;<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Jun 17, 2016 at 3:40 PM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; On Jun 17, 2016, at 12:22 AM, Tim Felgentreff &lt;<a href="mailto:timfelgentreff@gmail.com" target="_blank">timfelgentreff@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; On 16 June 2016 at 22:07, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt; Hi All,<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;     so after fixing &quot;git remote get-url origin&quot; to fail over to &quot;git remote<br>
&gt;&gt; &gt;&gt;&gt; show origin | filter and munge&quot; the culture shock of &quot;git commit -a&quot; (git<br>
&gt;&gt; &gt;&gt;&gt; commit does nothing ?!?!?) I have a VM that outputs a reasonable version<br>
&gt;&gt; &gt;&gt;&gt; info:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; /Users/eliot/oscogvm/build.macos32x86/squeak.cog.spur/CocoaFast.app/Contents/MacOS/Squeak<br>
&gt;&gt; &gt;&gt;&gt; 5.0 5.0.201606161953 Mac OS X built on Jun 16 2016 12:56:52 PDT Compiler:<br>
&gt;&gt; &gt;&gt;&gt; 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57) [Production Spur VM]<br>
&gt;&gt; &gt;&gt;&gt; CoInterpreter VMMaker.oscog-eem.1886 uuid:<br>
&gt;&gt; &gt;&gt;&gt; d413db9f-37cc-4c5d-bfc6-87b11203ee96 Jun 16 2016<br>
&gt;&gt; &gt;&gt;&gt; StackToRegisterMappingCogit VMMaker.oscog-eem.1886 uuid:<br>
&gt;&gt; &gt;&gt;&gt; d413db9f-37cc-4c5d-bfc6-87b11203ee96 Jun 16 2016<br>
&gt;&gt; &gt;&gt;&gt; VM: r201606161953 <a href="http://github.com/OpenSmalltalk/vm" rel="noreferrer" target="_blank">http://github.com/OpenSmalltalk/vm</a> $ Date: Thu Jun 16<br>
&gt;&gt; &gt;&gt;&gt; 12:53:33 2016 -0700 $<br>
&gt;&gt; &gt;&gt;&gt; Plugins: r201606161953 <a href="http://github.com/OpenSmalltalk/vm" rel="noreferrer" target="_blank">http://github.com/OpenSmalltalk/vm</a> $<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Which begs the question how do I differentiate this from something built<br>
&gt;&gt; &gt;&gt;&gt; officially via Travis?  Arguably the URL is wrong, and should only say<br>
&gt;&gt; &gt;&gt;&gt; &quot;<a href="http://github.com/OpenSmalltalk/vm" rel="noreferrer" target="_blank">http://github.com/OpenSmalltalk/vm</a>&quot; for travis builds, and perhaps should<br>
&gt;&gt; &gt;&gt;&gt; just include my local hostname and current directory when I make any kind of<br>
&gt;&gt; &gt;&gt;&gt; local modification.  So the above would read<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; ...<br>
&gt;&gt; &gt;&gt;&gt; VM: r201606161953 McStalker:?users/eliot/oscogvm $ Date: Thu Jun 16 12:53:33<br>
&gt;&gt; &gt;&gt;&gt; 2016 -0700 $<br>
&gt;&gt; &gt;&gt;&gt; Plugins: r201606161953 McStalker:?users/eliot/oscogvm $<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Alternatively we could add another field, or modify one of the existing<br>
&gt;&gt; &gt;&gt;&gt; fields to say &quot;I&#39;m official&quot; however one would do that.  I don&#39;t know how, I<br>
&gt;&gt; &gt;&gt;&gt; just know we need this.  I shouldn&#39;t be able to pollute the VM pool by<br>
&gt;&gt; &gt;&gt;&gt; putting some VM on some site somewhere that i just happened to build after<br>
&gt;&gt; &gt;&gt;&gt; several sherries and some cannabis brownies that looks to all intents and<br>
&gt;&gt; &gt;&gt;&gt; purposes just like a VM built by our official Travis slaves.  Hic.  Chillin&#39;<br>
&gt;&gt;<br>
&gt;&gt; I just discovered git-describe, which seems like it could be useful...<br>
&gt;&gt; <a href="http://alblue.bandlem.com/2010/11/automatically-tagging-builds-with-git.html" rel="noreferrer" target="_blank">http://alblue.bandlem.com/2010/11/automatically-tagging-builds-with-git.html</a><br>
&gt;&gt;<br>
&gt;&gt; So if Travis created  &quot;r201606161953&quot; as an *official* tag for<br>
&gt;&gt; successful builds like this...<br>
&gt;&gt; <a href="https://github.com/travis-ci/travis-ci/issues/1476" rel="noreferrer" target="_blank">https://github.com/travis-ci/travis-ci/issues/1476</a><br>
&gt;&gt;<br>
&gt;&gt; then `git describe` would produce &quot;r201606161953&quot; for that build, and<br>
&gt;&gt; after a couple of commits in my personal repo would produce<br>
&gt;&gt; &quot;r201606161953-2-g169d02a&quot;.    The &quot;-2-g169d02a&quot; would distinguish<br>
&gt;&gt; non-official builds.<br>
&gt;&gt;<br>
&gt;&gt; In addition, I can now copy-paste a VM&#39;s output revision string<br>
&gt;&gt; to directly do &quot;git checkout r201606161953&quot;<br>
&gt;&gt; instead of &quot;git checkout master@{2016-06-16 19:53} which I read is<br>
&gt;&gt; only viable for 90 days anyway, and has some complexity between<br>
&gt;&gt; whether the given date is author commit date or merge date.<br>
&gt;&gt;<br>
&gt;&gt; But after doing &quot;git checkout r201606161953&quot; in my personal repo<br>
&gt;&gt;    git describe<br>
&gt;&gt;         ==&gt;    r201606161953  is indistinguishable from the Travis build<br>
&gt;&gt; but...<br>
&gt;&gt;    git describe --long<br>
&gt;&gt;        ==&gt;  r201606161953-0-a264e03b  is distinguishable.<br>
&gt;&gt;<br>
&gt;&gt; In addition,  if I edit some files and rebuild before committing I<br>
&gt;&gt; want to distinguish this from when I build a fresh check out , which<br>
&gt;&gt; can be done with...<br>
&gt;&gt;    git describe --long --dirty    ==&gt;   r201606161953-0-a264e03b-dirty<br>
&gt;&gt;<br>
&gt;&gt; So that last would be used to version personal builds,<br>
&gt;&gt; while Travis would use &quot;git describe&quot; without any flags.<br>
&gt;&gt;    ==&gt;   r201606161953<br>
&gt;<br>
&gt;<br>
&gt; Sounds really good, but<br>
&gt;<br>
&gt; McStalker.oscogvm$ uname -a<br>
&gt; Darwin McStalker 13.4.0 Darwin Kernel Version 13.4.0: Mon Jan 11 18:17:34 PST 2016; root:xnu-2422.115.15~1/RELEASE_X86_64 x86_64<br>
&gt; McStalker.oscogvm$ git --version<br>
&gt; git version 1.9.5 (Apple Git-50.3)<br>
&gt; McStalker.oscogvm$ git describe<br>
&gt; fatal: No names found, cannot describe anything.<br>
&gt; McStalker.oscogvm$ git describe --long<br>
&gt; fatal: No names found, cannot describe anything.<br>
&gt; McStalker.oscogvm$<br>
<br>
That confused me also for a moment.  Its only because there are not<br>
yet any tags.<br>
Try this...<br>
$ git tag -a mytag -m &quot;my message&quot;<br>
$ git describe --long --dirty<br>
$ touch x<br>
$ git add x<br>
$ git commit -m &quot;blah de blah&quot;<br>
$ git describe --long --dirty<br>
$ echo blah &gt; x<br>
$ git describe --long --dirty<br>
<br>
Plus these tags can be applied retroactively without affecting history...<br>
<a href="https://git-scm.com/book/en/v2/Git-Basics-Tagging" rel="noreferrer" target="_blank">https://git-scm.com/book/en/v2/Git-Basics-Tagging</a><br>
<br>
cheers -ben<br></blockquote><div><br></div><div><span style="font-size:13px">It might be a good idea to tag the last (or first?) commit after the migration. But how do we do tagging? Have we decided on anything yet (e.g. [1])? Shall we start with v1.0.0 or shall v1.0.0 be the very first stable release of the OpenSmalltalk VM? Or would `</span>201606171704` be a tag?<span style="font-size:13px;line-height:1.5"> We certainly shouldn&#39;t confuse people with these numbers and the version number of the VM.</span></div><div><span style="font-size:13px"><br></span></div><div><span style="font-size:13px">Cheers,</span></div><div><span style="font-size:13px">Fabio</span></div><div><span style="font-size:13px"><br></span></div><div>[1] <a href="http://semver.org/">http://semver.org/</a></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt;<br>
&gt;&gt; &gt;&gt; how secure does this need to be? One way to differentiate the official<br>
&gt;&gt; &gt;&gt; VMs is to sign them directly on Travis (which we&#39;ll want to do anyway,<br>
&gt;&gt; &gt;&gt; just didn&#39;t get to it, yet).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Another option is to just change the URL replacement code to do<br>
&gt;&gt; &gt;&gt; something else when not running on Travis --- like adding your<br>
&gt;&gt; &gt;&gt; hostname and path instead --- but this could be fairly easily messed<br>
&gt;&gt; &gt;&gt; with.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Not sure how much malicious intent we want to prevent.<br>
&gt;&gt;<br>
&gt;&gt; Later on we should have Travis signing its build artefacts, but for<br>
&gt;&gt; now keep it simple.<br>
&gt;<br>
&gt;<br>
&gt; The Mac builds already sign provided a certificate is installed and an environment variable set to point to it.  See SIGNING_IDENTITY in build.macos*/common/Makefile.app<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; None.  I don&#39;t think there&#39;s malicious intent at all.  I do think we should differentiate between &quot;personal&quot; and Travis builds.  It&#39;s more for my own information, so u don&#39;t get confused, than to prevent maliciousness.  So do the simplest thing that could possibly work TSTTCPW.  I like username,host name,path as in an scp, eg eliot@McStalker:oscogvm (path relative to ~eliot).<br>
&gt;&gt;<br>
&gt;&gt; I think `git branch` is as important as `path`.<br>
&gt;&gt; Username could come from `git config <a href="http://user.name" rel="noreferrer" target="_blank">user.name</a> | sed &#39;s/ //g&#39;<br>
</blockquote></div></div>