So you've learnt how to create and customize Magento Theme or even have your custom-made theme ready to be shared with Magento Community? Before we go into details of packaging a theme, we should know a few basic terms and principles of Magento Extensions. Extensions could be of usage type of modules, language packs, design interfaces and themes and they are of 3 types of contributions:
- Magento Core Extensions, these are extensions created by Magento Core Team and released under OSL 3.0 license.
- Magento Community Extensions, these are extensions created by Magento Community Members and released under any open-source licenses.
- Magento Commercial Extensions, these are extensions created by Commercial Third Party and released under their own licensing scheme and hosted under their own server.
Since we'll be sharing the theme with Magento Community, our extension is categorised into Community Extension. Every submitted and approved community extension will have an extension key which is used when users are installing it through "Magento Connect Manager". Let's take a popular blogging extension: Lazzymonks Blog as example, it has a key of "magento-community/Monk_Blog".

Let's assume that our theme is named jv_silk with it's template files located at path/app/design/frontend/default/jv_silk/ and skin files located at path/skin/frontend/default/jv_silk/. Now go to your Magento Administration area: System » Magento Connect » Package Extensions. There are roughly 5 steps to package a theme into an extension which consist of the following:
1. Package Info
This basically contains the name of your package, the channel of your extension (for community package, use connect.magentocommerce.com/community), package summary and description, package license type and license link.

2. Release Info
This tab contains your theme release and version information.

3. Maintainers
List of maintainers of the package: Lead, Developer, Contributor or Helper. For the Lead, you have to fill in your username at www.magentocommerce.com.

4. Dependencies
Since Magento supports only PHP version greater than 5.2.0, we can safely put 5.2.0 as minimum and 6.0.0 as maximum.

5. Contents
Specify the contents of your theme on this step. If you are releasing a full theme package, you'll need to add 2 roles and contents path, Magento User Interface (layouts, templates) and Magento Theme Skin (Images, CSS, JS) respectively. Choose Recursive Dir type if you're following Magento default theme file organization as the layouts, templates and skins files are scattered in multiple folders so that the system is set to recursively add those files to the package xml.

That's all about the theme package information, now we can click on Save data and Create Package button and Magento will build the package automatically, once done, you should get a success message: Package data was successfully saved. The output file of the extension would be located in /var/pear in .tgz format.

Reference:
- http://www.magentocommerce.com/wiki/packaging_a_magento_extension

written by suyash, June 16, 2009
http://dev.thinkmantra.com:81/...tagId/12/
to http://dev.thinkmantra.com:81/tag/cool.html
by Magento extensions based on Magento API
written by vasanth, October 14, 2009

http://dev.thinkmantra.com:81/...tagId/12/
to http://dev.thinkmantra.com:81/tag/cool.html
by Magento extensions based on Magento API