No description
  • Smalltalk 98.8%
  • Python 1.2%
Find a file
Esteban Lorenzano 7e66e7f858
All checks were successful
Test Pulsar / test (push) Successful in 1m33s
work on merge into branch (WIP)
This is more or less dead code right now because we do not have the support on libgit2 (yet)
2026-04-26 10:36:03 +02:00
.ci/scripts mark all loaded repositories as "system" to not interfere with end-users 2026-04-15 15:31:55 +02:00
.forgejo/workflows new attempt to fix cleanup 2026-02-10 10:19:33 +01:00
resources add icons 2026-03-25 16:40:32 +01:00
src work on merge into branch (WIP) 2026-04-26 10:36:03 +02:00
.gitignore add repair dialog class (no idea why missing) 2026-04-03 15:43:27 +02:00
.project experimental (very) 2021-07-08 14:44:03 +02:00
LICENSE add licenses 2026-01-27 09:55:31 +01:00
LICENSE-Templarian-MDI add licenses 2026-01-27 09:55:31 +01:00
README.md update readme 2026-02-26 13:12:06 +01:00

Install instructions

package dependencies:

  • gtk4
  • gtksourceview5
  • libadwaita
  • libpanel
  • librsvg

1. Download VM

Linux

You should be ok about dependencies, but you may need libpanel, librsvg and gtksourceview5 if you are running a tiny machine. If that is the case, install them using you favorite package manager.
E.g. in Ubuntu (And maybe other debian distros) you can do this:

sudo apt install libadwaita-1-0 libgtksourceview-5-0 libpanel-1-1 librsvg2-2

WARNING Do not use zeroconf as your Pharo VM! Zeroconf ships with libraries that will interfere with the ones Pulsar uses.
Instead, you should install a VM provided by open build service (OBS).

MacOS

You can download a VM prepared with dependencies here.
We currently do not support old macOS intel machines (and probably ever will).

Windows

TODO

2. Download a Pulsar image

You can download a bundle with the pre-built image from nightly builds.
We do not have stable releases for the moment (this is still early development).

3. Run it

in Linux:

pharo --worker Pharo.image openPulsar

NOTE: You may want to create an alias in your shell to easy the start. I use fishshell and I have defined this function in my config.fish :

function psr
    pharo --worker $argv[1] openPulsar $argv[2..-1]
end

in MacOS:

./Pharo.app/Contents/MacOS/Pharo --worker Pharo.image openPulsar

in Windows:

PharoConsole.exe --worker --headless Pharo.image openPulsar

Build instructions

You do not need to build the pulsar image by yourself, the CI does that job for you. Nevertheless this information is useful in case, for any reason I cannot see, you still want to build the Pulsar image by yourself.

1. Download a usable image

Right now we are using Pharo 14, download the latest image (knowing that also Pharo is in development, things may fail).

2. Install MetaMetacello

(this is not really required but it will make easier the next step ;)

Metacello new 
	repository: 'github://estebanlm/MetaMetacello:main';
	baseline: 'MetaMetacello';
	load.

3. Install a lot of packages

IMPORTANT!!! For all this to work you need to add your keys to your account in the forge!

MetaMetacello load: [ :spec | spec
	baseline: 'UnifiedFFI' with: [ spec 
		repository: 'github://pharo-cig/UnifiedFFI:main';
		className: #BaselineOfUnifiedFFIFull ];
	baseline: 'Alexandrie' with: [ spec repository: 'github://pharo-graphics/Alexandrie:master' ]; 
	baseline: 'Resvg' with: [ spec repository: 'github://pharo-cig/pharo-resvg:main' ]; 
	baseline: 'StringInterpolation' with: [ spec 
		repository: 'github://estebanlm/pharo-string-interpolation:master';
		loads: #('StringInterpolation') ];
	baseline: 'Refactoring' with: [ spec
		repository: 'git:git@forge.smallworks.eu:pharo/RefactoringEngine.git:main' ];
	baseline: 'Themes' with: [ spec 
		repository: 'github://estebanlm/Themes:main';
		loads: #('HighlightStyles') ]; 
	baseline: 'Spec2' with: [ spec 
		repository: 'github://pharo-spec/Spec:dev-3.0';
		loads: #(default 'Spec2-Alexandrie' 'Spec2-Adapters-Morphic-Alexandrie') ];
	baseline: 'Gtk' with: [ spec 
		repository: 'github://pharo-spec/gtk-bindings:main';
		loads: #(default 'Gtk-Utils') ];
	baseline: 'SpecGtk' with: [ spec 
		repository: 'github://pharo-spec/Spec-Gtk:main';
		loads: #(default) ];
	baseline: 'NewTools' with: [ spec 
		repository: 'github://pharo-spec/NewTools:dev-2.0';
		loads: #(default 'NewTools-Gtk') ];
	baseline: 'Stargate' with: [ spec repository: 'github://estebanlm/stargate:main' ];
	baseline: 'Linden' with: [ spec repository: 'git:git@forge.smallworks.eu:estebanlm/linden.git:main' ];
	baseline: 'Adwaita' with: [ spec repository: 'github://estebanlm/Spec-LibAdwaita:main' ];
	baseline: 'SourceEditor' with: [ spec repository: 'git:git@forge.smallworks.eu:pharo/SourceEditor.git:main' ];
	baseline: 'Panel' with: [ spec repository: 'github://estebanlm/Spec-LibPanel:main' ];
	baseline: 'Pulsar' with: [ spec repository: 'git:git@forge.smallworks.eu:pharo/Pulsar.git:main' ] ].

4. Prepare your environment

(Smalltalk classNamed: #GEnumeration) allSubclassesDo: #initializeEnumeration.
"We want to work with string interpolation, but for now do not install it as it 
 creates problems while saving changes (they become corrupt, digging why). 
 Also current implementation is not backward compatible so we need to think how to  
 do it right."
"(Smalltalk classNamed: #StringInterpolationPlugin) install."

"we ban this rule because is annoying since we use LF as end line (in linux). Also this should be agnostic, we should not care about it."
ReMethodSourceContainsLinefeedsRule enabled: false.
"And this one, since there is no real need of this and is also annoying :P"
ReCompactSourceCodeRule enabled: false.

4.1. In MacOS

Spec-Gtk changes the default driver for the morphic world to OSGtkDriver but this is not working properly for the moment, so better if we revert it or your image will not be working when tryign to execute it in morphic.

OSWindowDriver driverClass: OSSDL2Driver.