OpenPonk is a metamodeling platform and a modeling workbench implemented in the dynamic environment Pharo aimed at supporting activities surrounding software and business engineering such as modeling, execution, simulation, source code generation, etc.
For more information see https://openponk.github.io/
Showcase video:
List of prepared Pharo VMs with specific OpenPonk plugins can be found on the official website.
Once downloaded, just extract and run openponk-XXX, where XXX is the suffix for the plugin set you downloaded.
To install from source, follow these steps:
- Clone this repository, optionally also clone OpenPonk plugins that you are interested in.
- Download Pharo VM appropriate for your platform from Pharo's official website. Then install it (or extract it, if you downloaded standalone version (in which case you will also need to download the "Pharo Image")).
- Once your Pharo VM is running, navigate to Iceberg Repositories ("Browse" > "Iceberg", Ctrl+O+I)
- Click the Add button (green plus on the right top side Iceberg's Repositories window). Select "Import from existing clone" and navigate to location you cloned this repository to. Click Ok to add the repository to the repository list.
- Right click newly added repository (the status will be "Not loaded") and select "Metacello" > "Install baseline of ... (Default)". If there are conflicts ("Duplicated project! There is already a project XXX in this installation.") select "Use LOADED version YYY".
- Repeat steps 4 and 5 for each OpenPonk plugin you wish to load.
Now you should see OpenPonk and your selected plugins on the top Pharo menu bar.
After you made changes, open Iceberg Repository window ("Browse" > "Iceberg", Ctrl+O+I).
You will see that the package you made changes in has status "Uncommited changes".
Create new branch describing the feature you worked on (right click > "Checkout branch").
Commit the changes (right click > "Commit") (you will be able to review the changes before actually commiting).
Then push to your fork of the origin and make a pull request (from GitHub).