This admin page will help to pack 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.

To start packing extensions, log in to Magento Admin panel and go to: Admin Panel: » System » Magento Connect » Package Extenssions.

You can easily follow the 5 step process to generate the extension that are described in the remaining article.

The extension packaging process includes generation of package.xml file with information about the package collected by the 5 steps below, and archiving content files and folders specified by the Contents step.

After package is uploaded to Magento Connect, it will be available for downloading and installation for other members, by pasting extension key into Magento Connect 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

Channel fields can be:

  • CORE packages: connect.magentocommerce.com/core (nickname magento-core)
  • COMMUNITY packages: connect.magentocommerce.com/community (nickname magento-community)

Any Suggestions on what to do in version 1.2?

Packaging an extension

This process is divided into 5 steps, detailed below.

After all steps have 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 Magento Connect.

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)

Release Info

In this tab provide release/version specific information

  • Release Version: Major, minor, revision and stability for the release (1.1.20123)
  • 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

Maintainers (required)

Maintainers of the package, user names the same as in MagentoConnect Only LEAD maintainers can upload releases The User field is your magentocommerce.com user name (found under My Account, User Name and Password). Don’t use your screen name here.

Dependencies

  • PHP Version: this setup will work only with PHP5 >= 5.2.0
    • Minimum: 5.2.0
    • Maximum: 6.0.0
    • Exclude: 6.0.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 split 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: the same as in packages

Extensions

PHP /PECL extensions dependencies

  • Extension: dropdown with currently installed PHP extensions
  • Min, Max, Recommended, Exclude, Type: the same as in packages

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 ‘#’)

Source: magentocommerce.com

Author

Why Magestore? We believe in building a meaningful & long-term relationship with you.

6 Comments

  1. I have one query “Can we do locally installation for custom modules packages/extensions on our local magento copy”
    so developer can create package for its module and install locally on his magento copy.

    Thanks in advance.
    please reply me.

  2. Hi, i have uploaded beta extension to the magento. how could i make it stable , now ???

  3. Can you provide samples for “Contents” section?
    Just to have idea how to fill it correctly.
    Thank you

    • Hi Vladimir,
      “Contents” section includes a set of links to the code files or folders in Magento system. For example, we have a product named Product Contact:
      1. Magento Local module file : MAgestore/Productcontact (the main code folder is app/code/local/Magestore/Productcontact)
      2. Magento User Interface (layouts, templates) : adminhtml/default/default/layout/productcontact.xml (layout file of admin : app/design/adminhtml/default/default/layout/productcontact/layout.xml)
      etc.
      Hope my answer helps. Feel free to let me know if you have any other questions.

Write A Comment