Packaging a Magento Extension in 1.5+
This is an old revision of the document!
Packaging a Magento extension in CE 1.5+ has changed due to the creation of Magento Connect 2.0 – this document reflects those changes. If you have questions, please refer to the Magento Connect forum for further guidance.
IMPORTANT UPDATE: Please make sure you read the section on Broader Extension Support before uploading your extensions.
This admin page will help to package your extensions, such as modules, add-ons, language packs, interfaces and themes, into CONNECT packages which you could upload to MagentoConnect and share with other community members.
For starting on extension packaging process, log in to Magento Admin panel and go to :
Admin Panel: » System » Magento Connect » Package Extensions
You can easily follow the 5 step process there 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 release is uploaded to MagentoConnect, it will be available for download and installation for other members, by pasting extension key into MagentoConnect downloader.
Is divided into 5 steps, detailed below.
After all steps have been completed, you can click “Save” button to save package for future retrieval by clicking “Load” button.
You can generate the release package by clicking on “Save data and Create Package” button. This will validate your information and create a .tar.gz file in var/connect (if you select 126.96.36.199 & later) or var/pear (if you select Pre-188.8.131.52) that you can upload to MagentoConnect. See Broader Extension Support below for further details on the differences.
NOTES: Please be aware of the following guidelines when packaging an extension. These are important and if entered wrong in packaging, could give you problems when uploading.
- Extensions are case sensitive: Make sure the package name reflects accordingly in all folders and xml files. e.g. MyExtension is not same as Myextension.
- Do not put spaces in the package name: The package name must NOT have space inside. For example, use Foo_Bar, don’t use “Foo Bar”. You will have ”There was a problem saving package data” when you save the extension if there is space inside the module name.
- ZLIB Requirements: Make sure you have zlib enabled in your php cli. Typically it is under “/usr/local/bin/php”. Otherwise you won’t be able to generate the package.
Here is general information about package without regards to releases or versions
- Name: CONNECT short package name, ( MyExtension )
- Channel: For community packages use (community) *This is case sensitive*
- 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)
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
Authors of the package, user names the same as in MagentoConnect Only LEAD authors 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.
An example setup for PHP5 >= 5.2.0:
- Minimum: 5.2.0
- Maximum: 6.0.0
Dependencies for current package
- Package: short package name (Mage_Core_Modules)
- Channel: community or core
- Min: minimum supported version of dependent package
- Max: maximum supported version of dependent package
PHP/PECL extensions dependencies
- Extension: select the type of extension
- Min: minimum supported version of extension
- Max: maximum supported version of extension
- Target: Location of the files to include
- Path: Path within the role (location). The path is relative to role directory. ex: Magento Community Module file is relative to app/code/community/ ; Magento Global Configuration is relative to app/etc/ ...
- 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 ‘#’)
For broader extension support for free (unpaid) community extensions, it is best to package using pre-184.108.40.206 option. When uploading the 1.0 version from var/pear – Magento Connect will make the 2.0 version for you. If you wish to only support 1.5 and higher versions of Magento only then only upload the 2.0 file from the var/connect directory to Magento. If you are trying to create separate packages (such as to upload both a 1.0 and 2.0 version to your site for a PAID extension, or if you want different version numbers for different releases) then you must select both options when packaging which generates both 1.0 and 2.0 file types.
Make sure that you add this information to your extension description so that merchants are aware of the supported versions of your extensions.
Additionally, if you have previously uploaded a 1.5+ (2.0 only) extension and would like it to have support for Pre 1.5 (1.0) as well, repackage the existing extension with a new version number but be sure to upload the file from the var/pear directory when adding to Magento Connect. This will update both versions but also give you a 1.0 version fro Pre 1.5.