Table of Contents

Package Specification

Change log

Date By Description
2008-04-23 Acenes Initial Draft
2008-04-24 Acenes Changed extension.id attribute to alphanumeric extension.name
2008-04-25 Acenes Make classification.demo a attribute of its own instead of another type.
2008-05-04 Acenes Added teaser.
2008-05-10 Acenes - Removed file list from package (automatic detection)
- Changed forumnick to user
- Removed licensefile attribute (all files viewable)
- Added version encoding
2008-05-11 Acenes Added build numbers
2008-05-12 Acenes Moved all language dependent elements into language element.
2008-05-15 Acenes Added package upload notes.
2008-05-19 Acenes Changed the directory structure adding distinct folders for TL_ROOT, TL_FILES and INSTALL as suggested by Andreas.
2008-05-19 Acenes Removed email adresses (prevent spammers).
2008-07-09 Acenes Reworded version number explanations.

Package File

Package files will be used to upload a new version of an extension by the package manager, as well as to install a package from file instead online from the SOAP services.

* SQL scripts that shall be executed at installation and uninstallation shall be INSTALL/install.sql and INSTALL/uninstall.sql respectively.

Below is the content of a package ZIP-file for a fictional hotel room reservation extension:

INSTALL/install.sql
INSTALL/uninstall.sql
INSTALL/010010009.sql
INSTALL/010010019.sql
INSTALL/010020009.sql
TL_FILES/hotelres/floorplan.jpg
TL_ROOT/system/modules/hotelres/LICENSE.txt
TL_ROOT/system/modules/hotelres/HotelController.php
TL_ROOT/system/modules/hotelres/HotelInstaller.php
TL_ROOT/system/modules/hotelres/config/config.php
TL_ROOT/system/modules/hotelres/config/database.sql
TL_ROOT/system/modules/hotelres/dca/hotel.php
TL_ROOT/system/modules/hotelres/languages/en/hotel.php
TL_ROOT/system/modules/hotelres/languages/de/hotel.php
TL_ROOT/templates/hotelres_fe.tpl
package.xml
package.jpg

The archive naming scheme as TYPOlight_package_version_build.zip, for the example application this could therefore be TYPOlight_hotel_10000129_102.zip

Uploading to Repository

Author

Translator

XML File Specification

Text encoding

All texts are encoded in UTF-8. The following characters must be converted to the respective HTML entities:

Character HTML Entity
& &
"
' '
< &lt;
> &gt;

In PHP the encoding is best done by htmlspecialchars($text,ENT_QUOTES,'UTF-8')

Date encoding

Dates are in format YYYYMMDD.

Version encoding

Version numbers of the extensions in the repository are made up by 4 parts:

  1. A major number from 0…99.
    The major number is changed when backward compatibility to former versions is dropped or a complete rework/redesign has taken place. The users will normally need to do some migration steps when upgrading to a new major number.
  2. A minor number from 0…999.
    The minor number is changed when new features are added which do not break backward compatibility for users. Database layout or documented interfaces/hooks may change, so custom add-ons and other dependent extensions may need to be adjusted.
  3. A micro number from 0…999.
    The micro number is changed for enhancements or bug fixes which do not break backward compatibility. Not database changes are involved, and all documented interfaces/hooks stay upward compatible, so custom add-ons and dependent extensions need no adjustments as long as they only use database fields or documented interfaces.
  4. A status from 0…9 translating as:
    0 = alpha1
    1 = alpha2
    2 = alpha3
    3 = beta1
    4 = beta2
    5 = beta3
    6 = rc1
    7 = rc2
    8 = rc3
    9 = stable.
    Alpha versions are experimental and serve to enable public participation in development stage.
    Beta versions are mostly feature complete, but not completely field tested.
    RC (release candidate) versions are basically ready for production, but not widely field tested.
    Stable versions are thoroughly field tested and approved by the author for production use.

The version is encoded to 9 digit number as [major:2][minor:3][micro:3][status:1], for example version 1.2.3 rc2 will be 10020037, or 0.0.1 alpha1 is 10. The value 0 is reserved for invalid/no version, so there exists no such version as 0.0.0 alpha1.

It is the author's own decision to define versions. It is however in his own interest to follow the suggested version numbering policies. For example if an extension is declared stable before it tested in the field and bugs are ironed out, it is likely that it will receive bad ratings and reviews. If it on the other hand never gets promoted to stable even after it is well proved, people with increased safety awareness may never install it.

Build numbers

Build numbers start at 0 for a new version, and get incremented automatically whenever something is changed on an existing release. That could be when translations are added or changed, files are modified, bugs are fixed or meta data is edited. When creating a new release it is likely that several changes are made such as uploading new files or changing meta data, so when finally publishing the new release the build will hardly ever be 0.

Build numbers can not be set directly, so also the build number in a package uploaded by an author is ignored. For commercial extensions where the files and package are hosted on the vendors site, the repository can not detect file changes and automatically increment the build. The author can however make some small change to the meta data (for example to the release notes) to enforce a new build number after changing files.

Example File

This is the package.xml file to the hotel reservation example:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE typolightpackage>
<extension name="hotelres" date="20080422">
  <author user="jmill" name="John Miller" />
  <copyright>&copy; 2008, 2009 by John Miller Web Services</copyright>
  <license>GNU Lesser Public License (LGPL) Version 3</license>
  <classification type="commercial" demo="yes" category="application" />
  <release version="10000129" build="102" date="20080421" />
  <typolight minversion="20040059" maxversion="20040079" />
  <files soapwsdl="http://www.jmillers.com/services/typolight.wsdl" />
  <script class="HotelInstaller" />
  <requiredextension name="bbcode" minversion="80059" maxversion="10000029" />
  <requiredextension name="creditcard" minversion="10050058" maxversion="10090039" />
  <language code="en">
    <translator user="jmill" name="John Miller" />
    <searchtags>hotel,reservation,room,rent</searchtags>
    <title>Hotel Reservations</title>
    <teaser>Reservation and booking of hotel rooms</teaser>
    <description>
      Allow guests to book hotel room reservations.&lt;br/&gt;
      Online feedback about success, plus email confirmation.&lt;br/&gt;
      Optional commission payment by credit card.
    </description>
    <releasenotes>
      This is just a small update:&lt;br/&gt;
      &lt;ul&gt;
      &lt;li&gt;Added field for customers skype address.&lt;/li&gt;
      &lt;li&gt;Fixed bug in credit card verification.&lt;/li&gt;
      &lt;/ul&gt;
    </releasenotes>
    <manual link="http://www.jmillers.com/hotel/manual.html" />
    <forum link="http://www.typolight.org/forum/viewforum.php?id=24" />
    <shop link="http://www.jmillers.com/shop/article/hotel.html" />
  </language>
  <language code="de">
    <translator user="heugen" name="Horst-Eugen Leicht" />
    <searchtags>Hotel,Reservation,Zimmer,Vermietung</searchtags>
    <title>Hotel Reservationen</title>
    <teaser>Reservation und Buchung von Hotelzimmern</teaser>
    <description>
      Ermöglicht Gästen, selber eine Hotelzimmer Reservation vorzunehmen.&lt;br/&gt;
      Online Rückmeldung über den Erfolg der Buchung, sowie Bestätigung per EMail.&lt;br/&gt;
      Optionale Anzahlung per Kreditkarte.
    </description>
    <releasenotes>
      Dies is nur eine kleine Anpassung:&lt;br/&gt;
      &lt;ul&gt;
      &lt;li&gt;Neues Eingabefeld für die Skype Adresse des Kunden.&lt;/li&gt;
      &lt;li&gt;Fehler in der Überprufung von Kreditkarten behoben.&lt;/li&gt;
      &lt;/ul&gt;
    </releasenotes>
    <manual link="http://www.jmillers.com/hotel/manual.de.html" />
    <forum link="http://www.typolight.org/forum/viewtopic.php?id=5492" />
    <shop link="http://www.jmillers.com/shop/article/hotel.de.html" />
  </language>
 </extension>

XML File Explanation

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE typolightpackage>

Description



<extension name="hotelres" date="20080422">
</extension>

Description

Attributes



  <author user="jmill" name="John Miller" />

Description

Attributes



  <copyright>&copy; 2008, 2009 by John Miller Web Services</copyright>

Description

Text



  <license>GNU Lesser Public License (LGPL) Version 3</license>

Description

* The license information.

Text



  <classification type="commercial" demo="yes" category="application" />

Description

* Classify the extension.

Attributes

The demo feature is not yet implemented.



  <release version="10000127" build="103" date="20080421" />

Description

Attributes



  <typolight minversion="20040059" maxversion="20040079" />

Description

* Compatibility information to the TYPOlight core.

Attributes



  <files soapwsdl="http://www.jmillers.com/services/typolight.wsdl" />

Description

* File container.

Attributes

This custom SOAP server feature is not yet implemented.



  <script class="HotelInstaller" />

Description

* An overload of the RepositoryInstaller class, used to execute special operations upon install, upgrade and un-install. API documentation of the RepositoryInstaller class will follow.

Attributes



  <requiredextension name="bbcode" minversion="80057" maxversion="10000029" />
  <requiredextension name="creditcard" minversion="10050059" maxversion="10090039" />

Description

* Other extensions, this extension depends on.

Attributes



  <language code="en">
  </language>

Description

Attributes



  <translator user="heugen" name="Horst-Eugen Leicht" />

Description

Attributes



  <searchtags>hotel,reservation,room,rent</searchtags>

Description

* Search tags for the extension as comma separated list.

Text



  <title>Hotel Reservations</title>

Description

* The title to display.

Text



    <teaser>Reservation and booking of hotel rooms</teaser>

Description

* Short description to display.

Text



  <description>
    Allow guests to book hotel room reservations.&lt;br/&gt;
    Online feedback about success, plus email confirmation.&lt;br/&gt;
    Optional commission payment by credit card.
  </description>

Description

* Full description to display.

Text



  <releasenotes>
    This is just a small update:&lt;br/&gt;
    &lt;ul&gt;
    &lt;li&gt;Added field for customers skype address.&lt;/li&gt;
    &lt;li&gt;Fixed bug in credit card verification.&lt;/li&gt;
    &lt;/ul&gt;
  </releasenotes>

Description

* The release notes and change log for this current release.

Text



  <manual link="http://www.jmillers.com/hotel/manual.html" />

Description

* Link to the manual.

Attributes



  <forum link="http://www.typolight.org/forum/viewforum.php?id=24" />

Description

* Link to the forum.

Attributes



  <shop link="http://www.jmillers.com/shop/article/hotel.html" />

Description

* Vendor shop link for commercial, donation link for free extensions.

Attributes