Loading...
 
Skip to main content

History: Composer

Source of version: 33

Copy to clipboard
            Composer is a Software Dependency Manager for PHP, which is heavily used by [https://tiki.org|Tiki].

! Composer

* 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://gitlab.com/tikiwiki/tiki/-/blob/master/vendor_bundled/composer.json|150+ library dependencies in PHP and JavaScript], which are bundled as part of the regular Tiki install.
** Some Tiki dependencies also have their own dependencies. The whole list is tracked at [https://gitlab.com/tikiwiki/tiki/-/blob/master/vendor_bundled/composer.lock|composer.lock]
* Superfluous code is removed via [https://gitlab.com/tikiwiki/tiki/-/blob/master/lib/core/Tiki/Composer/CleanVendors.php|CleanVendors]
* Starting in ((Tiki18)), there is a web-based tool to install ((Packages)), which permits to manage even more libraries. This is to provide easy access to dependencies that are not shipped as part of the standard Tiki installation.
* [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
** Please see https://gitlab.com/tikiwiki/tiki/-/tree/master/installer/composer-patches
* The Tiki community runs its own instance of [https://github.com/composer/satis|Satis], a Simple static Composer repository generator. Source: [https://gitlab.com/tikiwiki/tiki/-/blob/master/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/
* Here are guidelines for what should be available via ((dev:Tiki Packages vs built-in)) to Tiki directly, as we are careful to manage complexity and avoid the worst of dependency hell, as explained at https://pluginproblems.com
* 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
* In 2021, it was announced that [https://github.com/composer/composer/issues/10340|Composer 2.2 is LTS]

!! Troubleshooting Composer
Please visit https://dev.tiki.org/Composer if you are getting an error about Composer or about a package managed with Composer.

!! Stats
{HTML()}<script type='text/javascript' src='https://www.openhub.net/p/composer/widgets/project_factoids_stats?format=js'></script>{HTML}
        

History

Advanced
Information Version
Marc Laporte 37
Marc Laporte Complete shutdown of Composer 1.x metadata access on Packagist.org 36
Marc Laporte The Tiki 27 plus Build System 35
Marc Laporte 34
Marc Laporte 33
Marc Laporte 32
Marc Laporte composer.lock is useful as well 31
Bernard Sfez / Tiki Specialist Added link to troubleshooting Composer 30
Marc Laporte 29
Marc Laporte 28
Marc Laporte 27
Marc Laporte 26
Marc Laporte 25
Marc Laporte 24
Marc Laporte Switching some links to GitLab 23
Marc Laporte 22
Marc Laporte 21
Aris Bernotas CleanVendors was pointing to sourceforge dead link -> changed to gitlab 20
Marc Laporte Now 125+ ! It is 140 in the list but some are on the way out and only used for old versions of Tiki. 19
Fabio Montefuscolo 18
Fabio Montefuscolo 17
Marc Laporte 16
Marc Laporte asset-packagist.org 15
Marc Laporte 14
Marc Laporte Solution: https://asset-packagist.org/ 13
Marc Laporte Thanks Ricardo! 12
Marc Laporte 11
Marc Laporte CleanVendors 10
Marc Laporte 9
Marc Laporte One more useful link 8
Marc Laporte 7
Marc Laporte 6
Marc Laporte 5
Marc Laporte 4
Marc Laporte 3
Marc Laporte 2
Marc Laporte 1