Component types and versioning


Supported component types

The following table discusses the component types that Magento Marketplace supports. The composer type column in the following table specifies the value of the type field you must add to composer.json for that type of component.

Friendly name composer.json type Description
Metapackage metapackage

Technically, a Composer package type, not a Magento component type. A metapackage consists of only a composer.json that specifies a list of components and their dependencies.

For example, both Magento CE and Magento EE are metapackages.

Module magento2-module Code that modifies Magento application behavior. You can upload a single module to the Magento Marketplace or your module can be dependent on some parent package.
Theme magento2-theme Code that modifies the look and feel of the storefront or Magento Admin.
Language package magento2-language Translations for the storefront or Admin.

Each component type has a different directory structure and different contents for composer.json.


Components have the following types of versions:

  • Marketing version; in other words, the version the merchant interacts with.

    Your initial version might be 1.0.0 or 2.0.0, for example. You should follow our versioning policy guidelines when setting your version.

  • Composer version; in other words, the version of each module, theme, language package, third-party package, and dependencies.

Using Magento code as an example, Magento CE marketing version 2.0.0 includes component versions such as 100.0.1, 100.0.2, and so on. These versioning strategy prevents collisions between the marketing version and component versions.


About component file structure