pharo-project / pharo

Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.
http://pharo.org
Other
1.22k stars 358 forks source link

Loading baseline with EpMonitor doesn't tell it succeded #16294

Open doste opened 8 months ago

doste commented 8 months ago

When loading a baseline through a Playground, Metacello doesn't show that it succeded in the installation. In the tab bar of the Playground it shows 'running' just as while the installation was happening.

Steps to reproduce the behavior:

  1. Open a Playground.
  2. Try to install a baseline, like:
    EpMonitor disableDuring: [
    Author useAuthor: 'Load' during: [
    [   Metacello new
        baseline: 'BlocBenchs';
        repository: 'github://pharo-graphics/BlocBenchs:master/src';
        onConflictUseIncoming;
        ignoreImage;
        load.
    ]   on: MCMergeOrLoadWarning
      do: [ :warning | warning load ] ] ]
  3. It doesn't tell you it finished, so you have to check manually if the baseline is installed.

Expected behavior: Some kind of feedback that the baseline was successfully loaded.

Version information:

welcome[bot] commented 8 months ago

Thanks for opening your first issue! Please check the CONTRIBUTING documents for some tips about which information should be provided. You can find information of how to do a Pull Request here: https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo

GitHub
Contribute a fix to Pharo
Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk. - pharo-project/pharo
hernanmd commented 5 months ago

I'm not an expert in Metacello, but from what I've seen, in P13, Metacello loads statements, each one of which is a "script" loaded in a session using dynamic variables (IceMetacelloLoadSessionContext).

To notify successful loading, one could add MCLoadSuccess or MCSuccessLoad.

But there are multiple points where this could be implemented: MetacelloScriptApiExecutor, MetacelloScriptEngine, etc., and someone more knowledgeable could drop some lines here. Maybe @guillep ?