<div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 8 Apr 2019 at 7:33 am, Chris Muller <<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I didn't grok Fabio's idea at first.  It saves having to click any<br>
menu at all.  Brilliant.</blockquote><div dir="auto"><br></div><div dir="auto">Great! This is almost exactly how I imagined it. I'm not sure it makes sense to load both Metacello and the Git infrastructure at the same time. Not sure if the Git infra depends on Metacello, but Metacello definitely does not depend on the Git tools.</div><div dir="auto"><br></div><div dir="auto">Could we just add a GitBrowser item to the Tools menu and install the Git infrastructure when it's clicked for the first time?</div><div dir="auto"><br></div><div dir="auto">One more question: Would it be better to prompt the user to confirm the installation of Metacello and Git (as in "Do you want to install X? (A connection to the Internet is required).")? Let's say I'm offline and click on GitBrowser, then I'd know stuff needs to be loaded from the web. Otherwise, I'd probably just see a debugger.</div><div dir="auto"><br></div><div dir="auto">Fabio </div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
<br>
<br>
On Mon, Apr 8, 2019 at 12:28 AM <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> wrote:<br>
><br>
> Chris Muller uploaded a new version of Installer-Core to project The Inbox:<br>
> <a href="http://source.squeak.org/inbox/Installer-Core-cmm.428.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/inbox/Installer-Core-cmm.428.mcz</a><br>
><br>
> ==================== Summary ====================<br>
><br>
> Name: Installer-Core-cmm.428<br>
> Author: cmm<br>
> Time: 8 April 2019, 12:28:03.307324 am<br>
> UUID: 45c1899a-1b8e-42bf-9360-584797cf4a91<br>
> Ancestors: Installer-Core-cmm.427, Installer-Core-tcj.426<br>
><br>
> Allow installation of github projects via the scripts at the top in their readme files, without first having to manually ensure Metacello is installed.<br>
><br>
>         Metacello new<br>
>                 baseline: 'NameOfTheProject';<br>
>                 repository: 'github://...';<br>
>                 load<br>
><br>
> =============== Diff against Installer-Core-tcj.426 ===============<br>
><br>
> Item was changed:<br>
>   ----- Method: Installer class>>ensureRecentMetacello (in category 'scripts') -----<br>
>   ensureRecentMetacello<br>
>         "Copied and adapted from <a href="https://github.com/Metacello/metacello/blob/master/README.md" rel="noreferrer" target="_blank">https://github.com/Metacello/metacello/blob/master/README.md</a>"<br>
><br>
>         | metacello |<br>
>         ((Smalltalk classNamed: #WebClient)<br>
>                 ifNil: [ false ]<br>
>                 ifNotNil: [ :webClient |<br>
>                         [ (webClient httpHead: '<a href="https://github.com" rel="noreferrer" target="_blank">https://github.com</a>') isSuccess ]<br>
>                                 on: Error<br>
>                                 do: [ false ] ])<br>
>                 ifFalse: [ ^self inform: 'Could not connect to "<a href="https://github.com" rel="noreferrer" target="_blank">https://github.com</a>".\\You need an internet connection and SSL support\to install (or update) Metacello.\\Please fix those issues and try again.' translated withCRs ].<br>
><br>
> +       metacello := Smalltalk classNamed: #Metacello.<br>
> +       (metacello name = #Metacello) ifFalse: [<br>
> -       metacello := (Smalltalk classNamed: #Metacello) ifNil: [<br>
>                 "Get the Metacello configuration (for Squeak users)"<br>
>                 Installer gemsource<br>
>                         project: 'metacello';<br>
>                         addPackage: 'ConfigurationOfMetacello';<br>
>                         install.<br>
><br>
>                 "Bootstrap Metacello Preview, using mcz files (#'previewBootstrap' symbolic version"<br>
>                 ((Smalltalk classNamed: #ConfigurationOfMetacello) project<br>
>                         version: #'previewBootstrap') load.<br>
><br>
>                 Smalltalk classNamed: #Metacello ].<br>
><br>
>         "Now load latest version of Metacello"<br>
>         metacello new<br>
>                 baseline: 'Metacello';<br>
>                 repository: 'github://Metacello/metacello:master/repository';<br>
>                 get.<br>
>         metacello new<br>
>                 baseline: 'Metacello';<br>
>                 repository: 'github://Metacello/metacello:master/repository';<br>
>                 load: #('default' 'Metacello-Help').<br>
>   !<br>
><br>
> Item was added:<br>
> + Object subclass: #MetacelloStub<br>
> +       instanceVariableNames: ''<br>
> +       classVariableNames: ''<br>
> +       poolDictionaries: ''<br>
> +       category: 'Installer-Core'!<br>
> +<br>
> + !MetacelloStub commentStamp: 'cmm 4/8/2019 00:27' prior: 0!<br>
> + MetacelloStub is a loose reference to Metacello.!<br>
><br>
> Item was added:<br>
> + ----- Method: MetacelloStub class>>doesNotUnderstand: (in category 'overriding') -----<br>
> + doesNotUnderstand: aMessage<br>
> +       Installer ensureRecentMetacello.<br>
> +       Installer installGitInfrastructure.<br>
> +       ^ aMessage sendTo: (Smalltalk classNamed: #Metacello)!<br>
><br>
> Item was added:<br>
> + ----- Method: MetacelloStub class>>initialize (in category 'initialize-release') -----<br>
> + initialize<br>
> +       Smalltalk<br>
> +               at: #Metacello<br>
> +               ifAbsentPut: [ self ]!<br>
><br>
><br>
<br>
</blockquote></div></div>