History: Composer
Source of version: 21
Copy to clipboard
! Composer Composer is a Software Dependency Manager for PHP, which is heavily used by Tiki. * Official website: https://getcomposer.org/ * Package repositories: ** Main: https://packagist.org/ ** Secondary: https://asset-packagist.org (after ((dev:Composer Dependencies not on Packagist|considering other options))) * Tiki uses Composer to manage [https://sourceforge.net/p/tikiwiki/code/HEAD/tree/trunk/vendor_bundled/composer.json|125+ library dependencies in PHP and JavaScript], which are bundled as part of the regular Tiki install. * Superfluous code is removed via [https://gitlab.com/tikiwiki/tiki/-/blob/22.x/lib/core/Tiki/Composer/CleanVendors.php|CleanVendors] * ((Tiki18)) has a web-based tool to install ((Packages)), which permits to manage even more libraries. * [https://packagist.org/packages/cweagans/composer-patches|cweagans/composer-patches] is used to patch dependencies. This is usually used until a patch is incorporated in a released version of a library ** the patches should be versioned as binary files, to avoid problems with line breaks * The Tiki community runs its own instance of [https://github.com/composer/satis|Satis], a Simple static Composer repository generator. Source: [https://sourceforge.net/p/tikiwiki/code/HEAD/tree/trunk/doc/devtools/satis.json|satis.json], web: http://composer.tiki.org * Picking and maintaining dependencies is a critical skill because https://www.reddit.com/r/programming/comments/1z09jq/why_your_software_project_will_slowly_die_without/ * Developers coordinate here: https://dev.tiki.org/Composer !! History * Tiki started in 2002, and there was no such tool to manage dependencies * The [https://en.wikipedia.org/wiki/Composer_(software)|first release of Composer was in 2012]. * In 2013, [https://sourceforge.net/p/tikiwiki/code/44846|Tiki started using Composer and progressively porting dependencies] (instead using SVN externals) * From 2014 to 2017: dependencies are progressively migrated to Composer * In 2017, ((dev:Composer Dependencies Revamp|Composer usage in Tiki was revamped)) and a web-based Composer tool was added -> ((Packages)) * In 2018, we [https://sourceforge.net/p/tikiwiki/code/65977|added support for asset-packagist.org] for when dependencies are not on Packagist.org but only NPM or Bower. * In 2018, a simple way to install packages via FTP: https://packages.tiki.org/ * In 2021, we moved to [https://gitlab.com/tikiwiki/tiki/-/merge_requests/785/diffs|Composer v2], in time for ((Tiki23)) so it will be nice and robust for ((Tiki24))LTS !! Stats {HTML()}<script type='text/javascript' src='https://www.openhub.net/p/composer/widgets/project_factoids_stats?format=js'></script>{HTML}