• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    Smalltalk
  • License
    MIT License
  • Created about 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Lets you manage your pharo images and download new ones

Pharo Launcher CI

The Pharo Launcher is a cross-platform application that

  • lets you manage your Pharo images (launch, rename, copy and delete);
  • lets you download image templates (i.e., zip archives) from many different sources (e.g., Jenkins, files.pharo.org, and your local cache);
  • lets you create new images from any template,
  • automatically find and download the appropriate VM to launch your images.

A Pharo Launcher screenshot

The idea behind the Pharo Launcher is that you should be able to access it very rapidly from your OS application launcher. As a result, launching any image is never more than 3 clicks away.

Please report bugs on the 'Launcher' project at https://github.com/pharo-project/pharo-launcher/issues

You can contribute to this project. All classes and most methods are commented. There are unit tests. Please contribute!

Motivations

In the past, I had several folders with images everywhere on my HD. Sometimes with the VM, sometimes without. Lots of image searching as you can imagine. Now, my HD is now much cleaner - all images are in a central place and I need only one icon/starter on the desktop to open. PharoLauncher is also a convenient tool to download specific image update versions if you want to reproduce or fix Pharo bugs. I also associated one of the unused laptop keys with PharoLauncher - so the world of Smalltalk is just one click away...

How to install?

See http://pharo.org/download for detailed download and installation instructions.

How to use it?

Just launch the Pharo launcher app. Usually for "end user experience" the launcher opens in full world mode - so you do not see Pharo background/world menu - only the launcher.

Initially, on a new computer, the right side with local images is empty. On the left side are the template images that are available on the web. Note that there are refresh buttons at the top of the list.

Click "Refresh" on the left list to fetch all available template lists from the web.

Select the template image you like and download it. For instance, you can download "Pharo6.0" -> "60528" which is the latest image as of today. Note that also the images from contribution CI are available. So you can easily download "Artefact", "Moose", ... images if you like.

The launcher will download the image into a specific directory somewhere in your users home directory (you can configure whereby clicking the Settings button at the bottom of the window). Each image gets its own folder. Use the "Show in folder" menu item if you want to open this location.

After download, you can "Launch" the image from the context menu in the right list. This will open the new image and close the launcher image. So you are ready to start working.

Warning: Antinvirus can prevent Pharo Launcher to behave correctly

It has been reported on Windows that the Antivirus prevents Pharo Launcher to download the VMs needed to run images. A workaround is to whitelist PharoLauncher or to temporary disable the antivirus when you need to download new VMs.

Where are my images?

Launcher files are considered as user documents and so, they are stored in the user document folder, i.e.:

  • $HOME/Documents/Pharo on OS X,
  • $HOME/My Documents/Pharo on windows,
  • $HOME/Pharo on Linux (some Linux distributions provide a document folder but some others not, so we put it in the HOME directory in all cases). In this folder, you will find your images and virtual machines needed to run images.

What does the Pharo launcher to launch an image?

To run an image, Pharo launcher needs 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 optionally 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 optionally 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

How would I make my own templates available via Pharo Launcher?

There are different ways:

  • The easiest way would be to add a CI job on https://ci.inria.fr/pharo-contribution/. This job should archive a zip file with your image and the changes file. Then you will be able to browse your image as a template from Pharo contribution Jenkins / / Latest successful build.
  • Another way is to create a fresh image from the Templates panel, launch the image, add what you want in the image, save it and then convert the image to a template: right-click on the image on the right panel (Existing images) and select Create Template. The newly created template will appear in the Templates panel under the Downloaded templates category.

Things to know:

At the bottom, there is a button to open a settings browser with specific settings for PharoLauncher. There is an option that enables the IDE again - so you can inspect the code or fix a bug.

If it does not launch on your box then set a breakpoint in PhLImage>>launch to debug.

Important note: the launcher currently does not fit with the "Save as" image style - since each launcher image has to be in a new directory. So either use the "Copy" image, then "Launch" and then only "Save" in the target image or copy the "Saved as" image in a new folder and refresh the Launcher view on the right side.

Develop the Pharo Launcher

Download the latest stable Pharo image and use Iceberg (Pharo git client) to clone this repository. Once done, you can load the project through Metacello integration (uses BaselineOfPharoLauncher).

Metacello new
	baseline: 'PharoLauncher';
	repository: 'github://pharo-project/pharo-launcher:dev/src';
	load

Then evaluate "PharoLauncher open". You can also launch it from the World menu.

More Repositories

1

pharo

Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.
Smalltalk
1,195
star
2

pharo5-vm

Discontinued The PharoVM repository
C
115
star
3

pharo-vm

This is the VM used by Pharo
Smalltalk
113
star
4

pharo-core

pharo-core git mirror
94
star
5

pharo-changelogs

To describe each version
25
star
6

PharoMap

To have a map of the Pharo related projects
18
star
7

pharo-zeroconf

ZeroConf script generator for http://get.pharo.org
Shell
16
star
8

pharo-gsoc

Pharo GSOC website https://gsoc.pharo.org/
JavaScript
14
star
9

pharo-unicorn

Pharo bindings to the Unicorn machine code simulation library
Smalltalk
13
star
10

pharo-beacon

Beacon is a small event and logging framework for pharo
Smalltalk
12
star
11

PharoBootstrap

Shell
10
star
12

pharo-ubuntu

Builds packages for pharo-launcher and pharo-vm on Ubuntu
Shell
8
star
13

pharo-docker

Shell
7
star
14

pheps

Pharo Enhancement Proposals
7
star
15

pharo-website

JavaScript
7
star
16

threadedFFI-Plugin

A Threaded FFI plugin for Pharo. It extends the Cog VM with non blocking queue based FFI.
Smalltalk
7
star
17

pharo-llvmDisassembler

Pharo bindings to the LLVM disassembler
Smalltalk
6
star
18

homebrew-pharo

Homebrew formulae and casks for Pharo
Ruby
6
star
19

aleph

an index system for the pharo system
Smalltalk
5
star
20

pharo-minimal-scripts

Smalltalk
5
star
21

pharo-update

A collection of the updates files used for the system-updates of Pharo
Smalltalk
5
star
22

pharo-potentialEnhancementLogs

To share roadmaps of current work with co-workers
5
star
23

pharo-StarterKitScripts

Some scripts to help build the Pharo starter kit
Shell
4
star
24

pharo-archlinux

Builds packages for pharo-launcher and pharo-vm on Arch Linux
Shell
3
star
25

pharo-flyers

A flyer/leaflet for Pharo
TeX
3
star
26

hermes

Smalltalk
3
star
27

app-deployer

Build and deploy application written in Pharo
3
star
28

pharo-vm-tunning

Smalltalk
3
star
29

pharo-build-scripts

Scripts for building pharo distributions
StringTemplate
3
star
30

newsletter

The next Pharo Newsletter
2
star
31

pharo-deployment-scripts

Scripts to be used to deploy Pharo applications into production
Shell
2
star
32

PharoEnhancementProposals

To collect in a lightweight manner potential enhancement proposals
2
star
33

largeImages

Smalltalk
2
star
34

pharo-ci

CI Scripts
Smalltalk
2
star
35

pharo-icon-packs

A repository to keep icon packs for Pharo
2
star
36

pharo-benchmarks

Smalltalk
2
star
37

PermSpaceSupport

Smalltalk
2
star
38

pharo-project-contributors

Contributors of Pharo project
1
star
39

app-images

Repository holding material to build Pharo images with pre-loaded libraries to start the development of your application quickly
Smalltalk
1
star
40

pharo-project-consultants

Consultants list of Pharo Project
1
star
41

OldCompiler

The old Smalltalk compiler and AST, deprecated
Smalltalk
1
star
42

pharo-weekly

To get some news about pharo
Shell
1
star
43

pharo-regression-testing

System-wide Regression Testing
1
star