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 considering other options)
- Tiki uses Composer to manage 125+ library dependencies in PHP and JavaScript, which are bundled as part of the regular Tiki install.
- Superfluous code is removed via CleanVendors
- Tiki18 has a web-based tool to install Packages, which permits to manage even more libraries.
- 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 Satis, a Simple static Composer repository generator. Source: 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 first release of Composer was in 2012.
- In 2013, Tiki started using Composer and progressively porting dependencies (instead using SVN externals)
- From 2014 to 2017: dependencies are progressively migrated to Composer
- In 2017, Composer usage in Tiki was revamped and a web-based Composer tool was added -> Packages
- In 2018, we 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/