[TYPO3-dev] composer install typo3/cms

Christian Opitz christian.opitz at netresearch.de
Thu Feb 6 10:10:02 CET 2014


Hi Fabien,

thanks for your comprehensive answer!

> (1) What is important for Packagist as well is to have the user "typo3" as maintainer. This will
> ensure Gerrit is allowed to trigger an update when a new merge is made. A package could well be
> registered by anybody (e.g. for a third-party extension) but then user "typo3" must be added as
> additional maintainer on the Packagist GUI. I did some successful test with a random extension and
> left some note: https://notes.typo3.org/p/composer

Ok, sounds good - additionaly if you don't want this additional user, 
you could trigger the update manually. Maybe it might be a good idea to 
name this user typo3-gerrit to not confuse extension authors?

> (2) but the sys-extensions do have a composer file as reminder / info. This can be exploited, see below.
>
> On the topic there is a pending patch where to standardize the packages name of the core packages
> which are for now not compliant with Packagist (regular expression will make it fail when submitting
> against Packagist. https://review.typo3.org/#/c/25503/

So, you'd submit the sysexts to packagist separately? I thought, it 
would be fine if the typo3/cms package would just provide them by the 
provide [1] key in composer.json (as the lightwerk guys did in their 
repository). Thus they would be published and coupled to the core also.

> The tags format should be fixed on the main repository IMO. It must be checked / sync with the
> release managers. As for the *main* composer.json, it must be added at the root. If you already have
> an idea how it should look like, a patch could be proposed for the Core.

Maybe packagist works differently but composer refuses tags that don't 
contain a composer.json (even if there's one in the master). Fixing all 
tags in the main repo would be great in terms of straightness but I 
think for the composer venture I would go with Philipp's suggestion.

> It is perhaps a dream but it could be interesting to be fine-grain when installing / deploying TYPO3
> CMS Core. "typo3/cms" would install the default distribution as we know it. But could it be the
> opportunity to only pick the core packages (or sysext) that are desired. The "virtual" git
> repository for packagist you mentioned sounds as a solution. However, I fear it will not work with
> the main composer.json file which would have the dependencies to all sub-packages. To be investigated...

Well, your dream isn't so far away:
Currently our installer
- downloads the TYPO3 sources to vendor/typo3/cms and links typo3 and 
index.php there if the filesystem/os supports symlinks or directly to 
typo3/index.php if not
- creates the directories fileadmin, typo3conf, typo3temp and uploads
- touches ENABLE_INSTALL_TOOL and FIRST_INSTALL

Our roadmap provides for a basic 1/2/3-install by the composer installer 
as well as an extension installer for composer that would delegate to 
the TYPO3 CLI extension installer.

But composer doesn't know the concept of de/activating packages - so I 
think it's still up to TYPO3 to organise, which packages of the 
"composer installed" are "TYPO3 activated".

> It goes into the same direction, does it?
> https://github.com/lightwerk/typo3cms-installers

Yes, but some steps further (those installers actually just download the 
TYPO3 / extension sources).

[1] https://getcomposer.org/doc/04-schema.md#provide
[2] at the very end: http://composer.lightwerk.com/packages.json

Regards,
Christian



More information about the TYPO3-dev mailing list