pharo-project / pharo-launcher

Lets you manage your pharo images and download new ones
https://pharo-project.github.io/pharo-launcher/
MIT License
108 stars 46 forks source link

Launcher should manage VMs #8

Closed DamienCassou closed 7 years ago

DamienCassou commented 9 years ago

Currently images are run using the VM that PharoLauncher is running with. When trying to track down a bug and wanting to switch an image to run on different VMs, its help would help a lot if the context menu for an image included options for different VMs.

Some possible features are:

DamienCassou commented 9 years ago

Comment by Marcus Denker:

It should not.

We should instead have one VM for each release of Pharo. Pharo5 comes with the Pharo5 vm, Pharo6 with the Pharo6 VM.

This idea that every VM can run every image and every image needs to run on every VM is insane. It makes every movement impossible.

DamienCassou commented 9 years ago

Comment by Nicolai Hess:

If so, then it is even more important that pharo launcher can handle multiple VMs. In its current setup, it can show a huge range of different images, how should it handle images from 3.0/4.0/ and 5.0 if 5.0 does not work with the VM the launcher runs with?

bencoman commented 9 years ago

Marcus is right that its insane for every VM to run every Image, but that is not the aim, but instead to allow old Images to be locked to old VMs, and also to make it as easy to follow and test the VM-bleeding-edge as Pharo Launcher currently makes is easy to follow the Image-bleeding-edge.

bencoman commented 9 years ago

Perhaps the Existing Images list should retain and display the Image's last used VM, which is the default the next time the Image is double-clicked.

Also, in the same way that an "Image.zip" download actually includes several files ".image and .changes", perhaps our "Image.zip" files on files.pharo.org should contain a file like "vm.url" which points to the recommended VM on files.pharo.com. This can be displayed to the Launcher user, or as well, downloading an Image could automatically download its recommended VM.

DamienCassou commented 9 years ago

bencoman notifications@github.com writes:

Also, in the same way that an "Image.zip" download actually includes several files ".image and .changes", perhaps our "Image.zip" files on files.pharo.org should contain a file like "vm.url" which points to the recommended VM on files.pharo.com.

I think that's a nice idea. Please ask the Pharo community.

Damien Cassou http://damiencassou.seasidehosting.st

"Success is the ability to go from one failure to another without losing enthusiasm." --Winston Churchill

StephanEggermont commented 8 years ago

We now have a quick-and-dirty solution for running spur and non-spur images, using two different paths in the settings. It is not user-friendly, and needs to be revisited before the release of Pharo5, before we can run PharoLauncher on Raspberry Pi, and also before being able to use spur64 images. The format detection code should be taken from source.squeak.org/VMMaker.

DamienCassou commented 8 years ago

I won't do it because I have no time for that. Sorry :-(

StephanEggermont commented 8 years ago

Good to know

bencoman commented 8 years ago

On Wed, Jan 13, 2016 at 8:55 PM, Stephan Eggermont <notifications@github.com

wrote:

We now have a quick-and-dirty solution for running spur and non-spur images, using two different paths in the settings. It is not user-friendly, and needs to be revisited before the release of Pharo5, before we can run PharoLauncher on Raspberry Pi, and also before being able to use spur64 images. The format detection code should be taken from source.squeak.org/VMMaker.

Do you know which methods?

I have a few things on my plate at the moment, but I'm not adverse to having a look in about three weeks. Of course I'll jump straight away to review anything you come up with :)

What general architecture do you think? Any of...(?)

  1. Read the image format from all Images and add to a table shown on another tab or in settings where user can configure each with a path to associated VM. Also pre-add.
  2. Deliver with a few pre-defined.
  3. Have columns in image/template listings for format number and/or default vm?
  4. Right click on image gives a submenu listing configured VMs and one chosen to start, and/or be default.

@Damien, Sometime you mentioned a PharoLauncher re-write? What is that current status? cheers -ben

DamienCassou commented 8 years ago

On January 13, 2016 7:03:35 PM GMT+01:00, bencoman notifications@github.com wrote:

@Damien, Sometime you mentioned a PharoLauncher re-write? What is that current status?

Nothing has been implemented yet. If nobody drives it, it will never happen. I'm trying to get an intern but I'm not confident.

Damien Cassou http://damiencassou.seasidehosting.st

"Success is the ability to go from one failure to another without losing enthusiasm." --Winston Churchill

bencoman commented 8 years ago

On Thu, Jan 14, 2016 at 3:34 AM, Damien Cassou notifications@github.com wrote:

On January 13, 2016 7:03:35 PM GMT+01:00, bencoman < notifications@github.com> wrote:

@Damien, Sometime you mentioned a PharoLauncher re-write? What is that current status?

Nothing has been implemented yet. If nobody drives it, it will never happen. I'm trying to get an intern but I'm not confident.

Except I (and I guess others) don't know what the drives the need for a redesign. What are the bigger overall issues with existing? cheers -ben

DamienCassou commented 8 years ago

good question. The things I have in mind:

The rewrite started months ago:

StephanEggermont commented 8 years ago

And in the somewhat further future there are

bencoman commented 8 years ago

On Thu, Jan 14, 2016 at 5:39 PM, Damien Cassou notifications@github.com wrote:

good question. The things I have in mind:

  • some new users tell me they don't understand the GUI when looking at it. Some documentation seems useful enough that people wrote it.
  • adding VM management to the GUI is currently impossible
  • some people don't understand the difference between image and template
  • configuring the visible templates is not possible (e.g., adding a Jenkins server)
  • some users want their images in many places on their disk, currently the launcher manages 1 directory with everything inside
  • I hate the preference mechanism that stores code which breaks at each release (I would like to use cocoon http://www.smalltalkhub.com/#!/PharoExtras/Cocoon)
  • Handling releases is really painful (configuration update + job update + script execution to update the blessed/ directory)

The rewrite started months ago:

— Reply to this email directly or view it on GitHub https://github.com/pharo-project/pharo-launcher/issues/8#issuecomment-171586606 .

I really like the idea of using tabs, and also having an information pane like other VM management tools. But I would put the [Templates] tab first, so the workflow is left to right. The image can remember the user's last choice so that usually the [Images] tab will always be selected when Launcher is opened.

I would still favour a tree view. In particular, I always wanted to create per-project subfolders in the Images pane. The [Templates] tab should have someway to indicate which have a local copy

btw, out of the box the download should include: one local template, one image and one VM ready to go.

cheers -ben

DamienCassou commented 8 years ago

@bencoman After discussing with Doru, I would like to try having just one tab for both templates and images.

bencoman commented 8 years ago

Could you describe that a bit. I can't imagine how it might work. Also one "tab" implies other tabs. Could you clarify what hose would be? cheers -ben

On Fri, Jan 15, 2016 at 8:06 PM, Damien Cassou notifications@github.com wrote:

@bencoman https://github.com/bencoman After discussing with Doru, I would like to try having just one tab for both templates and images.

— Reply to this email directly or view it on GitHub https://github.com/pharo-project/pharo-launcher/issues/8#issuecomment-171944877 .

StephanEggermont commented 8 years ago

No, one tab implies no tab...

DamienCassou commented 8 years ago

One tab for images+templates and one tab for the VMs. The idea of the first tab is that images and templates are very similar beasts, the main difference being the download step. If you select an image you have a run button, if you select a template you have a download button that gets transformed to a run button as soon as you click it.

bencoman commented 8 years ago

On Sat, Jan 16, 2016 at 3:26 AM, Damien Cassou notifications@github.com wrote:

One tab for images+templates and one tab for the VMs. The idea of the first tab is that images and templates are very similar beasts, the main difference being the download step. If you select an image you have a run button, if you select a template you have a download button that gets transformed to a run button as soon as you click it.

That seems more complicated to me. Could you consider...

  • Its not clear from your description if you the downloaded image is directly modified (it sounds like this), or stored separately so I end up with two files - the original and the working image.
  • If I have five topics (e.g. different Fogbugz issues) each with several associated images since I am searching history to find when a bug was introduced, how do I organise this?
  • What if I rename template for build 50325 to something else? When later I want a new fresh image from build 50325, how do I find it? How do I produce another one?
demarey commented 7 years ago

Pharo launcher is now able to determine the appropriate virtual machine to run it and fetch it from the web if it is not available. The process is as following:

  1. determine the image format version
  2. find (and optionnaly fetch) a compatible VM (a VM able to run this image format) and run the image to get its Pharo version number
  3. find (and optionnaly fetch) the appropriate VM for this specific Pharo image version. Sources files are also downloaded with the VM when applicable.
  4. run the image with the appropriate VM.

I think it is enough to close this issue even if it would be best to have a small UI to be able to manager VMs (remove, update, etc).

bencoman commented 7 years ago

Thx Christophe. I'll try it out soon.