Notes for plugin developers

Do you have questions about writing plugins or scripts in Python? Meet the coders here.

Re: Notes for plugin developers

Postby Bitmonster » Wed May 06, 2009 5:02 pm

As you might have already seen, the EventGhost website runs on a new server. On this server we have the ability to run our own SVN server. I switched the SVN repository from SourceForge to the new server because the new server is much faster than SourceForge. I have disabled SVN write access for everybody on SourceForge now.

The downside is, that I have to re-create every developer account. To avoid further confusion, I suggest, that we use our forum user names on the new SVN server from now on. I will also update all past commits accordingly.

To get an account on the new SVN server please create a "htpasswd entry". You can create such entry with online tools like this:
http://www.htaccesstools.com/htpasswd-generator/

Simply input your forum user name (watch for the right case) and the wanted password. After pressing the "Create" button, copy the resulting line and paste it into a PM to me.

The new SVN URL will be: http://www.eventghost.org/svn/
And to browse it online you can use http://www.eventghost.org/websvn/eventghost

Since I'm currently working on the new repository, expect some downtime and curiosities today.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: Notes for plugin developers

Postby Bitmonster » Tue May 19, 2009 8:43 pm

Since nearly half a year I observe my decreasing joy to work on this project. There are many reasons for it, but I won't comment on this now. Anyhow, here are just some notes of what will most likely happen in the future from my side:

  1. I will implement a kind of "EventGhost Plugin Installer Format", that will help users to install plugins that are not part of the basic installer. It will basically be a ZIP file with a special file extension, so EventGhost can handle the installation if the user opens it through EventGhost and everything can stay bundled in a single file (including DLLs and other stuff).
  2. Plugin developers can then upload their plugins to the wiki. This way plugin developers won't need any special privileges to publish/update their plugins and have a basic version control system. The wiki will be extended to extract some informations from the uploaded plugins to generate an index of all plugins available. So users can search for plugins that might be interesting for them.
  3. EventGhost possibly then also gets a function to find missing plugins if a configuration XML is opened and download them automatically to complete the setup (for example after a complete new install).
  4. Once this is implemented, I will move many plugins out of the basic installer. Including many plugins that are written by me.

This is also the reason why I currently won't give new plugin developers SVN write-access. Most plugins will be removed from the trunk anyway.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: Notes for plugin developers

Postby Bitmonster » Tue May 19, 2009 10:38 pm

I have deleted some no longer related posts from this topic, updated some outdated information and locked it, to keep it informative.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: Notes for plugin developers

Postby Bitmonster » Fri Aug 28, 2009 7:37 pm

No plugin should ever assign something to eg.globals or change anything in it. Never!

The eg.globals namespace is exclusive for the user's Python scripts and commands.
If your plugin wants to publish variables to the user, the preferred way is to implement getter actions, that simply return the value. This way the user can also easily see all informations your plugin can provide.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: Notes for plugin developers

Postby Bitmonster » Sat Dec 12, 2009 8:15 pm

We have two new moderators on this board in addition to Bartman:
-jinxdone
-stottle

They will take care, that topics where developers publish new plugins will be moved to the "Plugin Support" sub-forum, so we will hopefully have a topic there for every plugin that was ever published for EventGhost in the future. The "Plugin Support" forum is the only forum here that is limited in the way new topics can be opened.

I guess at least one moderator will see a new topic that announces a plugin in the "Coding Corner" forum quite fast, so just create a topic for your plugin here and wait some days.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: Notes for plugin developers

Postby Bitmonster » Thu Dec 17, 2009 3:19 pm

The beta test for 0.4.0 has started here.

To make your plugin compatible with this branch you should add a new "guid" parameter to your eg.RegisterPlugin() call. This GUID will help EG to identify your plugin, so there are no name clashes with other plugins that accidentally might have the same name and will later ease the update of plugins. To create a GUID for your plugin, open the "Python Shell" under the "Help" menu. Then type:
Code: Select all
>>> import pythoncom
>>> pythoncom.CreateGuid()

You will get something like:
Code: Select all
IID('{DA3F5444-F359-4FEC-AF59-876BB152CC29}')

You need the string value, so copy it and paste it to your plugin source file, so it looks like this:
Code: Select all
eg.RegisterPlugin(
    name = "My Plugin",
    ...
    guid = '{DA3F5444-F359-4FEC-AF59-876BB152CC29}',
    ...
)

0.3.7 will simply ignore this value, while 0.4.0 might moan if you don't supply a GUID.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
User avatar
Bitmonster
Site Admin
 
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Previous

Return to Coding Corner

Who is online

Users browsing this forum: No registered users and 2 guests

cron