**Minutes Meeting 05/04/2014** ================================================ Participants * * Thomas Maroschik * * Helmut HummelExcused * * Fabien Udriot **Topics:** * **CMS on Packagist** [info][resolved] Tag format for CMS has been fixed - \url{https://forge.typo3.org/issues/57430} * **Base Distribution** [info] We can use this Git repo \url{https://git.typo3.org/TYPO3CMS/Distributions/Base.git/tree} has been cleared up by Oliver Hader [todo] Decide on the File Structure \url{https://forge.typo3.org/issues/57619} * idea: * - Packages/*** * - typo3\_src (not sure composer can have multiple vendor name as in \url{https://gist.github.com/fudriot/9963071} ) * - Web/ * Ernesto: I "propose" to indeed have **composer.json outside the web root**, and have "Web/typo3\_src -> ../typo3\_src" etc, which is our recommended setup.. "Web" then has to be set as a Documentroot in apache * * Thomas is currently against the Web/ folder as it doesn't give us much benefit. * Further we have to maintain then 2 different kind of folder structures. The conclusion is that we want to adapt the Flow directory structure but then as the one and only folder structure. * This should come along with the Flow integration in a next major release, possibly. * For now we move typo3/cms into typo3\_src and teach the install tool to suppress the file structure warning and the core updater. The general file/folder structure stays as it is for now. * Markus: Please don't do that! there are loads of sites out there that run in a subdirectory and where it is not easily possible to adjust/add new doc roots. * * * Suggested directory structure after installation: Packages/Libraries/ : Vendor Dir for non TYPO3 packages typo3conf/ext/ : Dir for TYPO3 CMS Extensions (TER) typo3/ext/ : Obsolete [Jigal:] Responses from mailing lists show there are still people who have use cases for globally installed extensions. therefore we haven't dropped support for this. typo3/sysext/ : Dir for TYPO3 CMS Framework Extensions typo3\_src typo3 -> typo3\_src/typo3 index.php -> typo3\_src/index.php fileadmin typo3temp uploads typo3conf composer.json The composer cms installer plugin should change the requirement of composer/composer to composer-plugin-api like suggested in \url{https://getcomposer.org/doc/articles/plugins.md} * **composer.typo3.org** [info] Good progress by Lars. packages.json is currently generated. \url{https://forge.typo3.org/issues/55914} (don't know if we can close it) [todo] Decide on the final domain name - \url{https://forge.typo3.org/issues/55911} * **documentation **\url{https://forge.typo3.org/issues/55912} [todo] have started some alpha notes and example at the bottom of this notes. It is meant to be on a Wiki page at some point Please report issues: \url{https://forge.typo3.org/projects/team-composer/issues} *********************************************************** **Minutes Meeting 17/02/2014** ================================================ Participants * Bastian Bringenberg * Christian Opitz * Felix Oertel * Lars Peipmann * Thomas Maroschik **CMS Installation** ---------------------- Experience / Existing installers: - Felix, Lars: Installer downloads TYPO3 CMS into root/typo3\_src/ directory - Christian: Installer downloads TYPO3 CMS, puts it into root/vendor/typo3/cms and creates Symlinks/Directory/Files - Thomas: Existing installer of NEOS: \url{https://git.typo3.org/Neos/Distributions/Base.git/tree} **Job descriptions** ------------------------ - Include CMSGit-Repo into packagist.org - New composer installer: Puts CMS into typo3\_src, creates symlink to typo3\_src/typo3 and typo3\_src/index.php (based on Christians CMS Installer) (ToDo: Christian) - Add composer installer repo to packagist and require it in TYPO3 composer.json (ToDo: Christian) - Author calls \url{http://URL/typo3/install} in the browser: TYPO3 Install tool creates basic files/directories (typo3temp/fileadmin/typo3conf directories) - "TYPO3 CMS Base Distribution": Installs extensions, imports .t3d (git.typo3.org/CMS/Distributions/Base.git) - creates the initial site **Extension Installation** ---------------------------- - composer.typo3.org/packages.json provides all TER extensions (based on existing script of lightwerk) (ToDo: Lars) - Extension Installer: From Lightwerk (type: typo3-cms-extension) - provide the installer with packagist.org (ToDo: Lars) **Motivation** ================== Use Composer as package manager in TYPO3 CMS. **How to deploy CMS core?** ================================================ $> composer create-project typo3/cms-base-distribution (work in progress) Advance use case: be able to only download particular Core Package ## **Example for third-party extensions** -------------------------------------------------------- { "name":"vendor/foo", "type": "typo3-cms-extension", "description": "...", } **Example for Core extensions** -------------------------------------------------------- { "name": "typo3/cms-bar", "type": "typo3-cms-framework", "description": "...", } **Consuming TYPO3 CMS packages from Packagist** ========================================= To consume TYPO3 packages write a basic composer.json at the root of a folderlike: { "require": { "composer/installers": "*", "vendor/foo": "dev-master" } } Package "composer/installers" is required as it will make sure package of type typo3-cms-extension" are to be deployed into ``typo3conf/ext``. **Consuming TYPO3 CMS packages from TER** ======================================= To consume TYPO3 packages published on the TER. Provided by \url{https://github.com/lightwerk/typo3cms-installers} { "repositories": [ { "type": "composer", "url": "\url{http://composer.lightwerk.com}" } ], "name": "foo/bar\_stuff", "type": "typo3cms-extension", "require": { "lw/typo3-installers": "*" } } **Consuming TYPO3 CMS packages to a different target** ============================================== Let assume you have composer.json at the root of a directory that is is not exposed in the document root "htdocs", you can configured a different target to the package. { "require": { "composer/installers": "*", "vendor/foo": "dev-master" }, "extra": { "installer-paths": { "htdocs/typo3conf/ext/{$name}/": [ "vendor/foo", "..." ] } } } **Configuring a TYPO3 CMS extension for Packagist** ================================================ Extensions hosted on git.typo3.org can be synchronised with Packagist if correctly configured. To have your extension as well, make sure to have these conditions fulfilled. This will make sure the hook in Gerrit can correctly inform Packagist a new commit was made. 1. Have a Composer file at the root of the extension, seel examples below. 2. Register the package registered at [Packagist](\url{https://packagist.org/packages/submit)} 3. Add "typo3" as maintainer in the detail view on Packagist. This is required to have Gerrit's hook working correlty Be careful with the "name". It must contains the vendor name of your namespace. As a reminder, "TYPO3\CMS" must not be used as vendor name as it is reserved for Core extensions. There are some [conventions related to namespaces](\url{http://wiki.typo3.org/Namespaces#Does\_and\_don.27ts\_for\_developers)} in the TYPO3 Wiki.
{}