<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 19, 2013 at 4:08 PM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Frank wrote:<br>
<br>
&gt;&gt;&gt; hesitation. Monticello predates git by about 3 years, so we were right...<br>
<div class="im">&gt; Monticello was great, back in the day.<br>
</div>&gt; And now, 7 years of git later, I&#39;d...<br>
<br>
One thing that&#39;s usually not a big factor with a lot of Smalltalkers<br>
-- the &quot;age&quot; of the software.  In fact that seems a strange thing to<br>
focus on given you&#39;re using a 30-year old language in the first<br>
place..<br>
<div class="im"><br>
&gt;&gt;&gt; ahead. It just makes so much sense to me to just use a world class<br>
&gt;&gt;&gt; tool that _we don&#39;t have to maintain_. (*)<br>
<br>
</div>It&#39;s fine to be impressed with &quot;successful&quot; (translation: used by lots<br>
of developers) bedrock software but we should not trick ourselves into<br>
thinking there&#39;s &quot;nothing to do&quot; to use it.  The _interface_ to the<br>
SCM...<br>
<div class="im"><br>
&gt; The given error is unfortunate, but that&#39;s not even git&#39;s fault -<br>
&gt; &quot;Filename too long&quot; says it all. That super long filename comes from<br>
&gt; filetree, so the error&#39;s existent is a confluence of a particular<br>
&gt; source-&gt;file mapping together with a file system limitation.<br>
<br>
</div>... is not necessarily easier to &quot;maintain&quot; than SCM integrated<br>
directly into the Smalltalk environment.  In fact, the domain model is<br>
probably the simplest part of Monticello.<br>
<br>
I think other IDE&#39;s use external SCM because they&#39;re not an integrated<br>
development &quot;environment&quot; at all.  They&#39;re a cluster of tools.<br>
Smalltalk is a true integrated environment which I believe ironically<br>
makes using integrated SCM not only possible but just as easy as<br>
interfacing to external.<br></blockquote><div><br></div><div>+1.  well said.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
 - Chris<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On Tue, Nov 19, 2013 at 3:39 PM, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt; wrote:<br>
&gt; On 19 November 2013 21:24, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;&gt; Hi Frank,<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Nov 8, 2013 at 2:44 PM, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 8 November 2013 22:30, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt; The trunk is a huge part of the Squeak development process and<br>
&gt;&gt;&gt; &gt; ecosystem that deserves and needs representation somewhere in the<br>
&gt;&gt;&gt; &gt; system.  Access to it is reasonably needed by ReleaseBuilder,<br>
&gt;&gt;&gt; &gt; Installer, <a href="http://source.squeak.org" target="_blank">source.squeak.org</a>&#39;s SqueakSource and<br>
&gt;&gt;&gt; &gt; MonticelloConfigurations.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Does noone else in the Squeak community use MCMs? I don&#39;t, but my<br>
&gt;&gt;&gt; libraries are all very, very small.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt; Squeak has been using its own flavor of Monticello for several years<br>
&gt;&gt;&gt; &gt; now, as does Pharo and GemStone.  So, to me, it feels fine to make it<br>
&gt;&gt;&gt; &gt; Monticello-For-Squeak, meaning to relax restrictions imposed by<br>
&gt;&gt;&gt; &gt; multiplatform so it can go as far as we want toward supporting the<br>
&gt;&gt;&gt; &gt; Squeak process.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; It&#39;s not really germane to this discussion, but if I could flick a<br>
&gt;&gt;&gt; switch and have us updating from github, I would do so without<br>
&gt;&gt;&gt; hesitation. Monticello predates git by about 3 years, so we were right<br>
&gt;&gt;&gt; on the bleeding edge there for a while, but git is now very, very far<br>
&gt;&gt;&gt; ahead. It just makes so much sense to me to just use a world class<br>
&gt;&gt;&gt; tool that _we don&#39;t have to maintain_. (*)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Here&#39;s an example of why surrendering one&#39;s source code control to something<br>
&gt;&gt; else is a really bad idea for an IDE:<br>
&gt;<br>
&gt; An IDE _always_ (*) surrenders source code control to something else!<br>
&gt; And it works just fine for emacs, Eclipse, Netbeans, Visual Studio,<br>
&gt; IntelliJ, ...<br>
&gt;<br>
&gt; (*) Squeak being the exception<br>
&gt;<br>
&gt; The given error is unfortunate, but that&#39;s not even git&#39;s fault -<br>
&gt; &quot;Filename too long&quot; says it all. That super long filename comes from<br>
&gt; filetree, so the error&#39;s existent is a confluence of a particular<br>
&gt; source-&gt;file mapping together with a file system limitation.<br>
&gt;<br>
&gt;&gt; &quot;When doing a git clone, I do get the following:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Philippe@gravitation7 ~<br>
&gt;&gt; $ git clone --depth=1 <a href="https://github.com/pharo-project/pharo-vm.git" target="_blank">https://github.com/pharo-project/pharo-vm.git</a><br>
&gt;&gt; Cloning into &#39;pharo-vm&#39;...<br>
&gt;&gt; remote: Counting objects: 17493, done.<br>
&gt;&gt; remote: Compressing objects: 100% (12363/12363), done.<br>
&gt;&gt; remote: Total 17493 (delta 4271), reused 17137 (delta 4143)<br>
&gt;&gt; Receiving objects: 100% (17493/17493), 19.28 MiB | 1.88 MiB/s, done.<br>
&gt;&gt; Resolving deltas: 100% (4271/4271), done.<br>
&gt;&gt; Checking connectivity... done<br>
&gt;&gt; error: unable to create file<br>
&gt;&gt; mc/VMMaker-oscog.package/GeniePlugin.class/instance<br>
&gt;&gt; /primSameClassAbsoluteStrokeDistanceMyPoints.otherPoints.myVectors.otherVectors.<br>
&gt;&gt; mySquaredLengths.otherSquaredLengths.myAngles.otherAngles.maxSizeAndReferenceFla<br>
&gt;&gt; g.rowBase.rowInsertRemove.rowInsertRemoveCount..st (Filename too long)<br>
&gt;&gt; Checking out files: 100% (17525/17525), done.<br>
&gt;&gt; fatal: unable to checkout working tree<br>
&gt;&gt; warning: Clone succeeded, but checkout failed.<br>
&gt;&gt; You can inspect what was checked out with &#39;git status&#39;<br>
&gt;&gt; and retry the checkout with &#39;git checkout -f HEAD&#39;<br>
&gt;&gt;<br>
&gt;&gt; Pretty weird error I&#39;d say.<br>
&gt;&gt;<br>
&gt;&gt; Anyone knowing what this is related to?&quot;<br>
&gt;&gt;<br>
&gt;&gt; IMO having Monticello under our own control is a key strength.  yes, it&#39;s<br>
&gt;&gt; effortful to maintain but I don&#39;t see why we can&#39;t summon that effort.  I do<br>
&gt;&gt; fear that if we don&#39;t we just become like everything else and soon enough<br>
&gt;&gt; we&#39;re just another scripting language.  The Smalltalk team had a name for<br>
&gt;&gt; this, something like &quot;error 22&quot;, meaning depending on the success of other<br>
&gt;&gt; projects or infrastructure.  It&#39;s a bad idea, unless its bedrock.<br>
&gt;<br>
&gt; Monticello was great, back in the day. But why do we _have_ to saddle<br>
&gt; ourselves with the effort of maintaining it ourselves? What else might<br>
&gt; we _better_ do if we didn&#39;t spend all our time NIHing everything?<br>
&gt;<br>
&gt; And now, 7 years of git later, I&#39;d consider git to be bedrock. Git<br>
&gt; _has succeeded_. It and mercurial have gutted the competition: darcs,<br>
&gt; monotone, bazaar, ...<br>
&gt;<br>
&gt; frank<br>
&gt;<br>
&gt;&gt;&gt; &gt; Having said that, I must admit this really does make it<br>
&gt;&gt;&gt; &gt; Squeak-specific, no longer generic.  So, maybe an alternative should<br>
&gt;&gt;&gt; &gt; be to model our development process elements in a new package,<br>
&gt;&gt;&gt; &gt; SqueakDevelopmentProcess (?), which would depend on our Squeak&#39;s<br>
&gt;&gt;&gt; &gt; generic Monticello to represent the elements of our development<br>
&gt;&gt;&gt; &gt; process.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m not terribly concerned with Squeak-specific or otherwise. It&#39;s<br>
&gt;&gt;&gt; just that it&#39;s _trunk_ specific. I&#39;d rather see a<br>
&gt;&gt;&gt; SqueakDevelopmentProcess package than see it in the Monticello<br>
&gt;&gt;&gt; package.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; frank<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; (*) Finding that switch to flick is pretty hard though, which is why I<br>
&gt;&gt;&gt; don&#39;t rant and rave about this all the time. Filetree&#39;s OK, but<br>
&gt;&gt;&gt; destroys the ability of browsing source on the git repository (but<br>
&gt;&gt;&gt; gives you the proper fine-grained version control you&#39;d want).<br>
&gt;&gt;&gt; gitfiletree supplies a Pharo UI to filetree, and it would be<br>
&gt;&gt;&gt; worthwhile to port that UI to Squeak, through ToolBuilderification.<br>
&gt;&gt;&gt; Continuing this discussion would necessitate a subject thread change!<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt; On Fri, Nov 8, 2013 at 3:12 PM, Nicolas Cellier<br>
&gt;&gt;&gt; &gt; &lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; I have same feeling as Frank,<br>
&gt;&gt;&gt; &gt;&gt; a specific address of a specific repository for a specific usage has<br>
&gt;&gt;&gt; &gt;&gt; not<br>
&gt;&gt;&gt; &gt;&gt; much thing to do in MC.<br>
&gt;&gt;&gt; &gt;&gt; MC package should not integrate each and every possible usage of MC.<br>
&gt;&gt;&gt; &gt;&gt; If this does not belong to ReleaseBuilder, then we can make it a System<br>
&gt;&gt;&gt; &gt;&gt; thing...<br>
&gt;&gt;&gt; &gt;&gt; If it&#39;s only for MCM, didn&#39;t we get a MCMcmUpdater defaultUpdateURL?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; 2013/11/8 Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; MonticelloConfigurations has no dependency on ReleaseBuilder and I<br>
&gt;&gt;&gt; &gt;&gt;&gt; don&#39;t think we should introduce one.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; If you at least acknowledge &quot;trunk&quot; is a real-thing in the real world,<br>
&gt;&gt;&gt; &gt;&gt;&gt; then note existence of MCRepository&gt;&gt;#trunk.  Sure, we could make a<br>
&gt;&gt;&gt; &gt;&gt;&gt; class-var or something if that helps you feel better, but my opinion<br>
&gt;&gt;&gt; &gt;&gt;&gt; right now is that is not necessary because code can change if/when it<br>
&gt;&gt;&gt; &gt;&gt;&gt; needs to.  Let&#39;s not let maybe-future-pie-in-the-sky-perfect be the<br>
&gt;&gt;&gt; &gt;&gt;&gt; enemy of pragmatic progress in the present.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; On Fri, Nov 8, 2013 at 10:33 AM, Frank Shearar<br>
&gt;&gt;&gt; &gt;&gt;&gt; &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; On 8 November 2013 15:25,  &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Chris Muller uploaded a new version of Monticello to project The<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Trunk:<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="http://source.squeak.org/trunk/Monticello-cmm.575.mcz" target="_blank">http://source.squeak.org/trunk/Monticello-cmm.575.mcz</a><br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; ==================== Summary ====================<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Name: Monticello-cmm.575<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Author: cmm<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Time: 3 October 2013, 9:42:40.555 pm<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; UUID: daeb51c6-0b6f-41db-883d-e9764e61d8c5<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; Ancestors: Monticello-cmm.573<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; - Integrate Berts suggestions.  Refactored and renamed the API for<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; the<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; new history and origin browsing functions to avoid ambiguity with<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; other MC<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; domain elements.  Went from &quot;version&quot; nomenclature to &quot;history&quot;.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; - Related to those functions, browsing a list of patch operations<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; is<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; now abstracted from browsing a Patch.  MCPatch is now a<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; MCOperationsList<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; and, likewise, a MCPatchBrowser inherits from a<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; MCOperationsBrowser.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; - Added well-known repository accessors for #trunk and<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; #packageCache,<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; and #trunkUrlString avoids scattering the hard-coded url string<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; literal in<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;&gt; so many places.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; I don&#39;t like this last item. MCHttpRepository has no business<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; knowing<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; about any particular location, nor should we commit ourselves to any<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; particular repository implementation. For instance, it might make a<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; whole lot of sense to build a repository backed by Cassandra.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; I&#39;m not convinced that ReleaseBuilder isn&#39;t the right place for this<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; info. Or, to avoid the double negative, I think ReleaseBuilder is<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; the<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; place that should know about the trunk URL, because ReleaseBuilder&#39;s<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; the class responsible for this kind of thing. One kind of release we<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; build is a release candidate, for instance.<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt; frank<br>
&gt;&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; best,<br>
&gt;&gt; Eliot<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>