Packaging a Magento Extension

Last modified by Moshe on Fri, June 25, 2010 10:14
Source|Old Revisions  

This is an old revision of the document!


This admin page will help to package your extensions, such as modules, add-ons, language packs, interfaces and themes, into PEAR packages which you could upload to MagentoConnect and share with other community members. The extension packaging process includes generation of package.xml file with information about the package collected by the steps below, and archiving content files and folders specified by the Contents step.

After package release is uploaded to MagentoConnect, it will be available for download and installation for other members, by pasting extension key into MagentoConnect downloader.

Extension key is constructed from:

  • PEAR channel nickname (magento-core or magento-community)
  • Short package name (Mage_Core_Modules)
  • Numeric release version (1.2.3) or release stability (beta) - optional

So the extension key could look like this:

  • magento-core/Mage_Core_Modules-1.2.3’ - specific release version will be installed * magento-core/Mage_Core_Modules-beta - latest beta release will be installed * magento-core/Mage_Core_Modules’’ - latest release for local stability settings will be installed

* NOTES:

  Make sure that downloader/pearlib/php and var/pear folders exist and have writable permissions for the web service.
  In version 1.0 you should run these commands before packaging extensions, to initialize PEAR packager:
      cd downloader
      ./pear mage-setup
  In all Channel fields use:
      CORE packages: connect.magentocommerce.com/core (nickname magento-core)
      COMMUNITY packages: connect.magentocommerce.com/community (nickname magento-community)

Packaging an extension is divided into 5 steps, detailed below.

After all steps has been completed, you can click “Save” button to save package information info into var/pear/<package_name>.ser file for future retrieval by clicking “Load” button.

Also you can generate the release package by clicking on “Save data and Create Package” button, which will validate information and create .tar.gz file in var/pear that you can upload to MagentoConnect.

Tab: Package Info

  Here is general information about package without regards to releases or versions
  Name: PEAR short package name, ( Mage_Oscommerce )
  Channel: For community packages use (connect.magentocommerce.com/community)
  Summary: Short package definition
  Description: Extended package definition
  License: Extension license name (OSL v3.0)
  License URI: Web URL for license text (http://www.opensource.org/licenses/osl-3.0.php)

Tab: Release Info

  In this tab provide release/version specific information
  Release Version: Major, minor, revision and stability for the release (1.1.20123alpha)
  API Version: Major and minor version for API used in this release (1.0)
  Release Stability: Stability of this release (alpha)
  API Stability: Stability of the API used in this release (stable)
  Notes: Release notes for users and developers

Tab: Maintainers (required)

  Maintainers of the package, user names the same as in MagentoConnect
  Only LEAD maintainers can upload releases

Tab: Dependencies

  PHP Version: 
      Minimum: 5.2.0, Maximum: 6.0.0, Exclude: 6.0.0 - will work only with PHP5 >= 5.2.0
  Packages:
      Dependencies for current package
      Package: short package name (Mage_Core_Modules)
      Channel: 
      Min: minimum supported version of dependent package
      Max: maximum supported version of dependent package
      Recommended: downloader will try to use this version even if newer available
      Exclude: comma separated list of versions that are not supported
      Type:
          Required: this dependency required for successful installation
          Optional: this package will be shown during installation as available option
          Conflicts: this package versions conflict with current package
  Subpackages:
      Used when new release of current package was splitted into 2 or more packages.
      In general no packages can share same files, but subpackages can contain files that were used in previous version of current package.
      Fields: same as in packages
  Extensions:
      PHP/PECL extensions dependencies
      Extension: dropdown with currently installed PHP extensions
      Min, Max, Recommended, Exclude, Type: same as in packages

Tab: Contents (required)

  Role: Location of the files to include
  Path: Path within the role (location)
  Type: File or Recursive Directory
  Include: Regular expression for file pattern to include (requires pattern delimiter, like '#') - ex. #^Mage#
  Ignore: Regular expression for file pattern to ignore (requires pattern delimiter, like '#')



 

Magento 2 GitHub Repository

Magento Job Board - Some sort of tag line goes here

Latest Posts| View all Jobs