TYPO3 TER Packagist Integration


The TYPO3 Extension Repository (TER) has traditionally been the primary location for sharing and discovering extensions for TYPO3 CMS. However, with the evolution of TYPO3 and the adoption of Composer, a fragmented landscape emerged where extensions could be found both in TER and on Packagist, the main Composer repository. This duality made it challenging for users to discover all available extensions in a centralized manner. Recognizing this challenge, a new integration has been implemented to bridge the gap between TER and Packagist, ensuring that extensions published on Packagist are also visible in TER.

Understanding the Integration

The integration between TYPO3 TER and Packagist is designed to automatically import extensions from Packagist that are marked with the specific type typo3-cms-extension into the TYPO3 Extension Repository. This process enables a centralized view of available extensions, facilitating easier discovery and access for users.

Criteria for Automatic Import

For an extension to be automatically imported from Packagist to TER, it must meet the following criteria in the composer.json file:

  • Type: Must be declared as typo3-cms-extension in the Composer package type.
  • Extension Key: Must include an extension-key in the extra.typo3/cms.extension-key section.
  • TYPO3 Dependency: Must require at least one typo3/cms-* dependency, such as typo3/cms-core.

Conditions Preventing Import

There are specific conditions under which a Composer package will not be imported into TER:

  • Duplicate Extension Key: If an extension key is already registered in TER, a Composer package using the same extension key will not be imported.
  • Opt-Out: If the extra.typo3/cms.skip-ter-packagist-import key is set to true in the Composer package's composer.json, the package will not be imported to TER.

Conditions for Automatic Removal of Composer Packages from TER

An imported Composer package will be automatically removed from the TYPO3 Extension Repository (TER) under the following circumstances:

  • Package removed from Packagist: If the package is no longer available on Packagist, it will be removed from TER to ensure all listed extensions are accessible.
  • Package abandoned: Packages marked as abandoned on Packagist will be removed from TER, maintaining the relevance and support quality of extensions.
  • Duplicate extension Key: If a new extension key registered in TER matches the key of an imported package, the package will be removed to prevent key conflicts and ensure clarity for users.

Packagist-Only Extensions in TER

Extensions that are available exclusively on Packagist and imported into TER will be identifiable by a standard icon (a package) to distinguish them from those directly uploaded to TER. While download statistics for these extensions are not initially available, there are plans to incorporate this feature in the future.