I've been working recently with QGIS (www.qgis.org), a slick, cross- platform, Qt-based GIS. QGIS has a feature that is so cool, you almost have to see it to appreciate it. But here's a brief description anyway:
QGIS supports plugins written in Python. If you've developed a nifty plugin, all you have to do is zip up your files, post the .zip on your Web site, then supply your users with the URL of a simple .xml file (called a plugin repository). For example:
<plugins>
<pyqgis_plugin name="MyPlug" version="0.0.1">
<description>Description goes here.</description>
<homepage/>
<file_name>myplug.zip</file_name>
<author_name>My Name</author_name>
<download_url>http://my.web.site/myplug.zip</download_url> </pyqgis_plugin>
</plugins>
When your user enters this URL in QGIS's Plugin Installer, it downloads the .zip file, unzips it in the .qgis folder in your home folder (~ or C:\Documents and Settings\<username>), and adds it to the list of available plugins that can be activated in QGIS.
But wait, there's more. If you select a plugin in the list that is not installed, the button says "Install Plugin". If it's already installed, the button says "Reinstall Plugin" (useful if you suspect that you've corrupted or deleted some of the plugin's files). And if a _newer_ version is available, the button says "Upgrade Plugin".
You can manually have it scan all the repositories you've entered or optionally let it scan all repositories automatically when QGIS starts up. If it finds a plugin that you have installed and there's a newer version available, this is listed at the top of the available plugins list and highlighted in bold.
It seems as though something like this might be useful in the Lazarus IDE for listing, downloading, installing and updating available packages. For example, perhaps the Installed Packages dialog could be extended to include this kind of feature. Selecting a package from a list of available packages in a repository XML would download and unzip the package source files under ~/.lazarus, then proceed with compiling the .lpk file and re-compiling Lazarus to install the package. This would also be useful for keeping up to date automatically with the latest version of a package that you use.
As it is now, the way in which packages are made available can be different for each package and keeping up with the latest package version requires manually checking each package site. This might also help package authors and porters to keep their package up to date. At any given point in time it seems as though half the packages for Lazarus are broken (won't compile). Maybe this would be a way of automatically testing which packages, say on CCR, are broken and alerting the authors.
Thanks.
-Phil
