|
The Intellispire Software Updater is based, in part on heavily modified JPackageMan and other librairies.
Current versions of the Intellispire Software Installer for Joomla! have the capability to install and upgrade the following types of packages:
Uninstall is left for the standard uninstaller.
To create your own Package, you simply create a .zip or tar-gzipped (preferred) file with the manifest and the components you want to install.
Package Example
He is an example manifest for JEvents:
<?xml version="1.0" encoding="UTF-8" ?>
<install type="package" version="1.5">
<name>Events</name>
<packagename>events</packagename>
<url>http://joomlacode.org/gf/project/jevents</url>
<version>1.5alpha2</version>
<packager>Intellispire Network</packager>
<packagerurl>http://www.intellispire.com/</packagerurl>
<update>http://www.intellispire.com/isn/update/joomla.events</update>
<description><![CDATA[
Events, meetings and more ]]></description>
<files>
<file md5='1f54cb9ba8fcbf3d9ae172c088427bcf'>com_events_1.5.0alpha2.zip</file>
<file md5='cd7b3e8e4770c12a09c8c514ab894bfe'>mod_events_cal_1.5.0alpha2.zip</file>
<file md5='725f5fedc8d7cfb8341d0f68b2f3ac3b'>mod_events_latest_1.5.0alpha2.zip</file>
<file md5='4273c776b97dd8aa16586f8a0033b0de'>mod_events_legend_1.5.0alpha2.zip</file>
<file md5='cca1e8c8848fee80a3c75b006fdcb55e'>mod_events_switchview_1.5.0alpha2.zip</file>
<file md5='7fadc6aef8da0d8da0aea81f85c87224'>plg_events_report_1.5.0alpha2.zip</file>
<file md5='fe87933ca34f461efacbd43b5c3d1701'>plg_events_search_1.5.0alpha2.zip</file>
</files>
</install>
Packaging Notes
Only newer packages have the md5 checksums, eventually all will. In some cases (for example, Jevents) you can manually verify the package checksums are correct and unmodified:
http://joomlacode.org/gf/project/jevents/frs/?action=FrsReleaseView&release_id=8189
The installer does not verify checksums of packages it downloads, but will in a future version.
Due to a limitation in the standard packaging system, each package may only have ONE component if it uses the standard installfile direcive. To get around this limitation, simply do not use functions in the installfile.
Do not assume that the JInstaller() is a Singleton. While it follows the Singleton pattern, there are actually multiple instances needed by the package. new: Do NOT assume JInstaller() exists. We now use ISJInstaller() in order not to pollute the namespace.
Create your application in such a way that simply overwriting the files will update it - if you need to update the database, do that in your application.
Never add configuration files to your package, instead create them as needed from inside your application (to eliminate the potential of overwriting user configuration files).
Version your application in the database, params, or config file so that you can take appropriate action when the component is updated.
Let the Package Manager install the additional extensions - like Plugins and Modules - for your components, don't try to do that in the installfile.
While we strive to maintain compatibility with the original Joomla! installation system, there are serious shortcomings that we are addressing. Some of these improvements may find their way back to the core. In the meantime, we are working closely with developers to add the needed functionality for both better installation and seemless upgrades to the com_updater.
Please feel free to discuss architecture issues and provide suggestions on the support forums.
Further Extensions
In order not to confuse the native Joomla! installer coming in 1.6, we will most likely rename this functionality to "ispackage" so a different handler will be used.
We currently have experimental support for tarballs ... the ability to extract package files into specific directories, without having to list every file in the package inside the manifest. This is what many custom installers already do, or make the user do (like uddeIM's additional templates).
We also have the ability to run scripts before install and after install. This is what allows us to backup config files and restore them, as well as update databases and other things as needed. Documentation / examples on request.
We are currently defining a yml based file format that you can put on your site, similar to Google Maps, that will tell the world where they can get the most recent versions of your software. Stay tuned.
* Packages and Libraries are proposed extensions for a future version of Joomla!. They are available as extensions and in the com_updater today.
|