<div class="markdown">
<p dir="auto">Hi folks.</p>

<p dir="auto">For people interested in Composer / Packagist.</p>

<p dir="auto">There is a Server Team effort to bring all TYPO3 CMS extensions hosted on git.typo3.org to Packagist. This would be an additional service provided by our infrastructure. Assuming there is composer.json file in the extension and the package is registered at Packagist, Gerrit, in a hook, will inform Packagist a new commit was made. This works already like that for Flow packages.</p>

<p dir="auto">I played a little bit with one extension and it looks this is easy... except for the name in the Composer file which is problematic. I have been told, the name pattern would look like "name": "typo3/cms-foo" which gives with my test:</p>

<pre><code>{
    "name": "typo3/cms-rss_display",
    "type": "typo3-cms-extension"
}
</code></pre>

<p dir="auto">It is correctly display at <a href="https://packagist.org/packages/typo3/cms-rss_display">https://packagist.org/packages/typo3/cms-rss_display</a></p>

<p dir="auto">However, when consuming the package the path will be <code>typo3conf/ext/cms-rss_display</code> (and not <code>ext/rss_display</code>, I don't want the "cms" segment)</p>

<p dir="auto">To see in practice, you can try:</p>

<pre><code>$> nano composer.json (paste content below)
$> composer install 
{
    "require": {
        "composer/installers": "*",
        "typo3/cms-rss_display": "dev-master"
    }
}
</code></pre>

<p dir="auto">I am wondering whether there is some additional configuration to tell the final name but I don't think so <a href="https://getcomposer.org/doc/04-schema.md">https://getcomposer.org/doc/04-schema.md</a>. Or in the "composer/installers" Package a patch to be submitted? Or having our own installer like <a href="https://packagist.org/packages/typo3/flow-composer-installers">https://packagist.org/packages/typo3/flow-composer-installers</a>?</p>

<p dir="auto">Otherwise I suggest to move to another name pattern which works - tested with success!</p>

<pre><code>{
    "name": "typo3cms/rss_display",
    "type": "typo3-cms-extension"
}
</code></pre>

<p dir="auto">BTW the name picked for the Core extensions is not valid for Packagist. This is not decided whether they go to Packagist one day (could make sense if we change the distribution strategy) but I suggest to rename the naming to be Packagist compliant.</p>

<pre><code>{
    "name": "typo3/cms/filemetadata",
    "type": "typo3-cms-framework",
}
</code></pre>

<p dir="auto">Packagist will complain: the complete name should match <code>"[a-z0-9]([_.-]?[a-z0-9]+)*/[a-z0-9]([_.-]?[a-z0-9]+)*"</code>. What about <code>typo3cms</code> as well?</p>

<pre><code>{
    "name": "typo3cms/filemetadata",
    "type": "typo3-cms-framework",
}
</code></pre>

<p dir="auto">Let me know what you think.</p>

<p dir="auto">Fb.</p>

<p dir="auto">Ps. To be reminded the work of Lightwerk which provides Composer support for TER extensions <br>
<a href="http://composer.lightwerk.com/">http://composer.lightwerk.com/</a></p>

<p dir="auto">-- <br>
Ecodev Sàrl - Rue de la Serre 11 - 2000 Neuchâtel - Switzerland</p>

<p dir="auto">Tel / VoIP   + 41 32 511 08 18<br>
Web          <a href="http://www.ecodev.ch">http://www.ecodev.ch</a></p>

</div>