Easiest way to distribute a simulation with custom plug-ins?

49 views
Skip to first unread message

James Humann

unread,
Feb 26, 2020, 3:52:30 PM2/26/20
to GAMA
I have been working on my own simulation, and wrote some extensions in pure Java that are now used by the agents.

I want to collaborate with users at another site, and so must transfer my sim to them. They've never used GAMA before, so I don't want to make them download the Developers Version and set everything up themselves.

Is there an easier way? Can I have them install standard GAMA and then my plugin? Or should I make a new build of GAMA using Maven? (The Maven approach is what I'm leaning towards, if that will allow them to install everything in one step. But I'm also new to Maven and may be misunderstanding how it works)

Thanks!

Srirama Bhamidipati

unread,
Feb 26, 2020, 3:58:26 PM2/26/20
to GAMA
Hi

You can follow instructions on developing and installing plugins page. I had once developed a plugin , stored it on github and then let user install from the Help> Install Plug-ins . There you can specify your github repo for example. It works!

Srirama

James Humann

unread,
Feb 27, 2020, 1:20:05 AM2/27/20
to GAMA
I am confused on how to start. 

Do I go through all the steps on here:
https://gama-platform.github.io/wiki/DevelopingPlugins
starting at "How to make a plugin available at GAMA update site for the GAMA release"?

Will converting to a Maven project have any other effects making it so I can't keep using the code as normal?

Is there a way to install the plugin without using GitHub or other hosting site, but just a local file on the hard drive?

Thanks again!

Srirama Bhamidipati

unread,
Feb 27, 2020, 2:02:03 AM2/27/20
to GAMA
Hi

Indeed I followed that page. However I am not an expert in this. I did it only once for 3-4 operators and nothing more. May be others can respond.

Srirama 

Youcef Sklab

unread,
Feb 27, 2020, 2:40:05 AM2/27/20
to GAMA
Hi James,
We will be very pleased to share your contribution and make it available to those who want to use it.   
For that, we strongly recommend following the tutorial to develop a plug-in (https://gama-platform.github.io/wiki/DevelopingPlugins) -- from the begining -- and add your project to the GAMA experimental repository on GitHub (https://github.com/gama-platform/gama.experimental). 
It would make it easier for people to use it. 

Youcef

Benoit Gaudou

unread,
Feb 27, 2020, 9:22:15 AM2/27/20
to gama-p...@googlegroups.com
Hi James,

The basic steps to share a plugin is:
1) you create your plugin + feature and test it on your GAMA
2) you upload it on a p2 repository available by anyone (i.e. on a server)
3) your collaborator install it through the Update of GAMA.

Note that for the step 2) the classical way would be for you to have an access to a server.
This could come from your university, or your own personal server.

The solution proposed by Youcef means that your plugin is hosted by the GAMA (i.e. the UMMISCO / IRD server).
The others remarks are that:
- the code will be shared to everybody (through the github of gama)
- the plugin would become integrated in the continuous integration process of the plugin
- the plugin would be potentially accessible by any GAMA user.

Not really strong constraints, but you need to know.

Considering your questions of installation from a local file, I think we need to check if possible...

Cheers

Benoit

--
You received this message because you are subscribed to the Google Groups "GAMA" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gama-platfor...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gama-platform/55b15c61-a3d7-44ef-b027-f6739588b29d%40googlegroups.com.

James Humann

unread,
Feb 27, 2020, 1:38:34 PM2/27/20
to GAMA
OK thank you for all the suggestions. I would not be allowed to post on a public server soon, maybe after I've gone through my company's release process, but that would take a long time. Please let me know if you find it possible to install from a local file.

Otherwise I will look into a private server, or perhaps creating a full custom release of GAMA with my extension that they could install.
To unsubscribe from this group and stop receiving emails from it, send an email to gama-p...@googlegroups.com.

Srirama Bhamidipati

unread,
Feb 28, 2020, 5:17:24 AM2/28/20
to GAMA
Hi

I think if you make github repo private. It will still work.

Srirama

Benoit Gaudou

unread,
Feb 29, 2020, 5:01:07 AM2/29/20
to gama-p...@googlegroups.com
Hi,

So let consider you have your plugin(s) (in the eclipse meaning) (with your code of your extension, operators ...) and the feature associated to your plugin(s).
In eclipse, open the file feature.xml of your feature.
In the pane overview, your have a part name "Publishing".
This will allow you to create your p2 repository/site, in wich you can upload/update your extensions.
The good point is that this p2 site can be local.

So :
1. First "Create an Update site", choose a name and a repository for your "site".
2. when it is done, a file site.xml will be opened in eclipse (a project is also added in your Project Explorer)
3. In the site.xml file you can : create categories (in your case it is useless I guess).
The important part is to add a feature, clic on "Add feature" and choose your feature.
4. Select your added feature and click on Built. When done, you should have the name of a ar, instead of the name feature.
5. Now in a GAMA release, you can install a new plugins, using this "site" (i.e. the created folder) to install the plugin.

Now I think you have 2 options of workflow (that need to be tested):
- you download the continuous built release + you create your local Update site + you install your plugin in the CB release of GAMA + you create an archive of this GAMA (that should contain the extension after installation) + you send your archive to your colleagues
- you create the update site + send it to your colleagues + they download the CB release and install themselves the plugin.

If you want to control all the steps, the first option is perhaps the safest one.

Cheers

Benoit


To unsubscribe from this group and stop receiving emails from it, send an email to gama-platfor...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gama-platform/22677686-6afd-44cd-b6c0-6bee77e5453b%40googlegroups.com.

James Humann

unread,
Mar 10, 2020, 11:02:24 PM3/10/20
to GAMA

After some initial problems, I was able to create a custom release using the command ./travis/build.sh in the git/gama folder. Thanks, everyone for the suggestions and help!
Reply all
Reply to author
Forward
0 new messages