phing

Tibetan cuisine includes the culinary traditions and practices of Tibet and its peoples, many of whom have found refuge in India and Nepal. read more at WikiPedia

  • joomlaloveRAD

    Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping. Something that was really slowing me a lot and making any builds or changes in my extensions a real pain to maintain was the packaging of code spread in the joomla tree. I did create numerous custom Phing builds to automate and reduce these pains (Phing is heavily derived from Apache ANT) and  2 months ago  Joomla-packager was born!

    My Joomla-packager is a generic Phing build script to build any Joomla 3rd extension, being a set of components, modules, plugins and or libraries, packages in a simple way.

    Audience

    Developers of 3rd party extensions for Joomla

    Convention over configuration…

    • A single script to rule all your need of Joomla packaging: multi modules/ multi plugins/multi components/multi library is supported,
    • If you respect Joomla conventions, this packager will be able to create a build of any of your extensions or set of extensions,
    • just configure one file (like for example in buildCedThumbnails.xml), mainly listing what your extension is made of and run with minimal efforts,
    • Packaging Joomla extensions will always look look the same = repeatability = convention over configuration

    Usage

    1. Download https://raw.github.com/cedricwalter/joomla-packager/master/joomla-packager.xml locally
    2. Download a copy of buildCedThumbnails.xml You only need to rename and touch this file, it is self documented.
    3. Download a copy of pkg_cedthumbnails.xml You only need to update this file if you alter the structure. (later Joomla-packager will create this file on the fly)
    4. Run the main target build of buildCedThumbnails.xml

    How it is working?

    This script implement ALL standard Joomla conventions to perform the packaging, and offer reusable Phing targets to package any number of extensions. Here is what is implemented:

    Modules

    • 1. Code is located in /modules/mod_${xxxxx} and self contained
    • 2. Languages files are optional but if they exist are located at /language/xx-yy/mod_${xxxxx}.ini /language/xx-yy/mod_${xxxxx}.sys.ini
    • 3. Media files (css,js,images) are optional but if they exist are located at /media/mod_${xxxxx}
    • 4. name of zip files as follow:
      • mod_{yourextension1}.zip

    Plugins

    • 1. Code is located in /plugins/${type}/${xxxxx} and self contained
    • 2. Languages files are optional but if they exist are located at /plugins/${type}/${xxxxx}/language/ or anywhere else in directory at step 1.
    • 3. Media files (css,js,images) are optional but if they exist are located at /media/plg_${type}_${xxxxx}
    • 4. name of zip files as follow:
      • plg_${type}_{yourextension}.zip

    Components

    • 1. Code is located in /administrator/components/${xxxxx} and /components/${xxxxx} and is self contained
    • 2. Languages files are optional but if they exist are located at /administrator/language/xx-yy/${xxxxx}.ini and /language/xx-yy/${xxxxx}.ini and
    • 3. Media files (css,js,images) are optional but if they exist are located at /media/${xxxxx}

    Packages

    • 1. one zip file which contains 1 to n other zip file + a manifest file named pkg_{yourextension}.xml
    • 2. manifest file named pkg_{yourextension}.xml has to be written manually for now and place beside your build{yourextension}.xml
    • 4. name of zip files as follow:
      • com_{yourextension}.zip

    You can browse numerous examples (for Joomla 2.5/3.0/3.1 at the project page (GitHub)