[squeak-dev] The Inbox: Installer-Core-cmm.430.mcz
Chris Muller
asqueaker at gmail.com
Thu Apr 11 04:31:36 UTC 2019
Thanks for that change to #installGitInfrastructure Jakob, it opened
my eyes to an easy way to test this. I think this is the one.
There was an underscore assignment in one of the loaded packages of
GitInfrastructure, that's why the Scanner allowUnderscoreAssignment:.
Best,
Chris
PS -- I've updated the Tools menu from "GitInfrastructure" to "Git
Browser", but will wait to commit that until after we're sure this is good.
On Wed, Apr 10, 2019 at 11:23 PM <commits at source.squeak.org> wrote:
>
> Chris Muller uploaded a new version of Installer-Core to project The Inbox:
> http://source.squeak.org/inbox/Installer-Core-cmm.430.mcz
>
> ==================== Summary ====================
>
> Name: Installer-Core-cmm.430
> Author: cmm
> Time: 10 April 2019, 11:23:30.85688 pm
> UUID: cb5b16dd-ba30-4ca0-8293-a58f16759490
> Ancestors: Installer-Core-tcj.426
>
> Allow installation of github projects via the scripts at the top of their readme files, without first having to manually ensure Metacello is installed.
>
> =============== Diff against Installer-Core-tcj.426 ===============
>
> Item was changed:
> ----- Method: Installer class>>ensureRecentMetacello (in category 'scripts') -----
> ensureRecentMetacello
> "Copied and adapted from https://github.com/Metacello/metacello/blob/master/README.md"
>
> | metacello |
> ((Smalltalk classNamed: #WebClient)
> ifNil: [ false ]
> ifNotNil: [ :webClient |
> [ (webClient httpHead: 'https://github.com') isSuccess ]
> on: Error
> do: [ false ] ])
> ifFalse: [ ^self inform: 'Could not connect to "https://github.com".\\You need an internet connection and SSL support\to install (or update) Metacello.\\Please fix those issues and try again.' translated withCRs ].
>
> + self isMetacelloInstalled ifFalse: [
> + "Prepare a clean environment for it."
> + Smalltalk globals removeKey: #Metacello.
> - metacello := (Smalltalk classNamed: #Metacello) ifNil: [
> "Get the Metacello configuration (for Squeak users)"
> Installer gemsource
> project: 'metacello';
> addPackage: 'ConfigurationOfMetacello';
> install.
>
> "Bootstrap Metacello Preview, using mcz files (#'previewBootstrap' symbolic version"
> ((Smalltalk classNamed: #ConfigurationOfMetacello) project
> version: #'previewBootstrap') load.
>
> + metacello := Smalltalk classNamed: #Metacello ].
> - Smalltalk classNamed: #Metacello ].
>
> "Now load latest version of Metacello"
> metacello new
> baseline: 'Metacello';
> repository: 'github://Metacello/metacello:master/repository';
> get.
> metacello new
> baseline: 'Metacello';
> repository: 'github://Metacello/metacello:master/repository';
> load: #('default' 'Metacello-Help').
> !
>
> Item was added:
> + ----- Method: Installer class>>installAndOpenGitBrowser (in category 'scripts') -----
> + installAndOpenGitBrowser
> + self installGitInfrastructure.
> + (Smalltalk at: #SquitBrowser) open.!
>
> Item was changed:
> ----- Method: Installer class>>installGitInfrastructure (in category 'scripts') -----
> installGitInfrastructure
> + "for INIFileTest>>#testComplexRead"
> + Scanner allowUnderscoreAsAssignment: true.
> -
> - self ensureRecentMetacello.
> -
> (Smalltalk at: #Metacello) new
> baseline: 'Squot';
> repository: 'github://hpi-swa/Squot:master/src';
> load.!
>
> Item was added:
> + ----- Method: Installer class>>isMetacelloInstalled (in category 'scripts') -----
> + isMetacelloInstalled
> + "Squeak is shipped with the global #Metacello referring to lightweight MetacelloStub. After the first message is sent, the latest Metacello is installed, replacing the stub."
> + ^ (Smalltalk at: #Metacello) ~= MetacelloStub!
>
> Item was added:
> + Object subclass: #MetacelloStub
> + instanceVariableNames: ''
> + classVariableNames: ''
> + poolDictionaries: ''
> + category: 'Installer-Core'!
> +
> + !MetacelloStub commentStamp: 'cmm 4/8/2019 14:00' prior: 0!
> + MetacelloStub is a loose reference to the class Metacello in its host repository. It's kept at both its real name, #MetacelloStub, as well as the name #Metacello. This is done to allow Squeak to respond to messages sent to Metacello (e.g., as referenced in external installation scripts), without the need to ship with Metacello pre-installed.!
>
> Item was added:
> + ----- Method: MetacelloStub class>>confirmMetacello (in category 'overriding') -----
> + confirmMetacello
> + Installer isMetacelloInstalled ifFalse:
> + [ (UIManager confirm: 'This action requires Metacello, but it''s not installed. Download and install it now?') ifTrue: [ Installer ensureRecentMetacello ] ]!
>
> Item was added:
> + ----- Method: MetacelloStub class>>doesNotUnderstand: (in category 'overriding') -----
> + doesNotUnderstand: aMessage
> + "Handle any messages sent to Metacello class, too."
> + self confirmMetacello.
> + ^ aMessage sendTo: (Smalltalk classNamed: #Metacello)!
>
> Item was added:
> + ----- Method: MetacelloStub class>>initialize (in category 'initialize-release') -----
> + initialize
> + Smalltalk
> + at: #Metacello
> + ifAbsentPut: [ self ]!
>
> Item was added:
> + ----- Method: MetacelloStub class>>isMetacelloConfig (in category 'overriding') -----
> + isMetacelloConfig
> + "Sent during Metacello's bootstrap initialization to all classes in the system. Respond false."
> + ^ false!
>
> Item was added:
> + ----- Method: MetacelloStub class>>new (in category 'overriding') -----
> + new
> + self confirmMetacello.
> + ^ (Smalltalk at: #Metacello) new!
>
>
More information about the Squeak-dev
mailing list
|