On 25 November 2017 at 23:24, Bernhard Pieber <bernhard@pieber.com> wrote:
Hi Stef,

I just found download links on this page:
https://github.com/pharo-project/pharo-launcher
They point to Jenkins build artefacts.

Thank you for implementing the launcher. As a newbie I ran into some questions:

I guess the launcher is not self-updating, right?

Correct.
��

If not, how can I find out if I already have the latest version?

Looking in Monticello you'll see a PharoLauncher repository.��
Open it and check if there are any newer ConfigurationOfPharoLauncher packages.
Install the latest and then do...
�� �� ConfigurationOfPharoLauncher load.

However currently when I...
��install PharoLauncher from the Catalog into a fresh image,
��then update to latest as above, I get an error about a missing class,
��but if I load the latest ConfigurationOfPharoLauncher into a fresh image I don't get that error.

cheers -ben

��

I don���t really understand what Local means. Is there a difference between Local > Pharo 6.1 (stable) and Official distributions > Pharo 6.1 (stable)?
And what is the difference between Local > Pharo6.1 (stable) and Local > latest? Hmm, when I launched Local > latest I got a debugger[1].

What also bothers me is that I cannot switch to the white theme in the settings. I just can���t read the UI on the dark theme.

Cheers,
Bernhard

Author: BernhardPieber

[1]
UndefinedObject(Object)>>doesNotUnderstand: #,
PhLVirtualMachineManager>>vmFileName
[ :bar |
bar label: 'Determining Image version'.
vm := self availableVirtualMachines
�� �� �� �� at: self vmFileName
�� �� �� �� ifAbsent: [ bar
�� �� �� �� �� �� �� �� �� �� �� �� label: 'Fetching VM to run Pharo ' , self imageVersion , ' images';
�� �� �� �� �� �� �� �� �� �� �� �� current: 25.
�� �� �� �� �� �� �� �� self fetchVm.
�� �� �� �� �� �� �� �� vm := self availableVirtualMachines at: self vmFileName.
�� �� �� �� �� �� �� �� bar
�� �� �� �� �� �� �� �� �� �� �� �� label: 'Fetching sources files for Pharo ' , self imageVersion;
�� �� �� �� �� �� �� �� �� �� �� �� current: 50.
�� �� �� �� �� �� �� �� self fetchSourcesFiles.
�� �� �� �� �� �� �� �� bar
�� �� �� �� �� �� �� �� �� �� �� �� label: 'Running the image';
�� �� �� �� �� �� �� �� �� �� �� �� current: 100.
�� �� �� �� �� �� �� �� vm ] ] in PhLVirtualMachineManager>>vm
[ :bar | aBlock value: bar ] in MorphicUIManager>>informUserDuring:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
MorphicUIManager>>informUserDuring:
PhLVirtualMachineManager>>vm
PhLImage>>launch
PhLLaunchImageCommand>>execute
PhLLaunchImageCommand(PhLCommand)>>executeIfApplicable
PhLCommandButton>>performAction
MorphicButtonAdapter>>action
PluggableButtonMorph>>performAction:
[ :m |
(m containsPoint: evt cursorPoint)
�� �� �� �� ifTrue: [ m enabled
�� �� �� �� �� �� �� �� �� �� �� �� ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[ ActiveHand := self.
ActiveEvent := anEvent.
result := focusHolder
�� �� �� �� handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self)) ] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>on:do:
WorldMorph(PasteUpMorph)>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEventsFromQueue:
HandMorph>>processEvents
[ :h |
self activeHand: h.
h processEvents.
self activeHand: nil ] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
WorldMorph class>>doOneCycle
[ [ WorldMorph doOneCycle.
Processor yield.
false ] whileFalse: [�� ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess

> Am 23.11.2017 um 09:51 schrieb Stephane Ducasse <stepharo.self@gmail.com>:
>
> Hi
>
> I love the PharoLauncher.
> It helps me to manage my parallel development and projects.
>
> We should put a link on the Pharo web site because
>
> http://files.pharo.org/platform/launcher/
>
> is arcane.
>
> Stef