See #121: "Summary from core committer discussion: everyone is on board with this change happening. However, it should not block D8's release."
Drupal 8's repo includes all the Composer-based dependencies. This makes many operations cumbersome, such as patches which update libraries.
It also reflects a no-build testing strategy which is sub-optimal.
Composer is an increasingly popular tool for project dependency management that auto-downloads stuff for you. We're already looking to use it for getting code into Drupal in the first place, and it lets us not keep duplicate copies of thousands of lines of code in our repo.
So: Remove the vendor directory from the repo. This will be easy to do, but will require some infrastructure changes:
- Have the D.O packaging script use Composer to build the vendor directory into the downloadable tarball.
- Have the D.O testbot run a
composer installphase before testing.
- Document that developers must run
composer installin order to use the code when they clone the repo.
- Document that deploying Drupal 8 from a repo will require a Composer installation phase.
User interface changes
Developers will need to regularly run
Original report by [username]
Now that Drupal 8 is bringing in some of the Symfony components, we need a way to manage them. Composer is a PHP package management system which is heavily inspired by npm, and with Packagist, it provides great support for Symfony.
What this means for Drupal.org is having the the packager process composer.json file during the package build process.
drush dl composer
drush composer install
Beta phase evaluation
|Prioritized changes||The main goal of this issue covers many areas reduces the size of the git repo, makes updates easier, improves deployment and maintenance of sites but adding more emphasis on composer.|
|Disruption||If managed correctly there should be minimal disruption. Firstly testbot needs to be updated to do composer install, and this would also need to be done when creating the zip/tarball packages.|
FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] Failed to run tests: failed during invocation of run-tests.sh --clean.
PASSED: [[SimpleTest]]: [PHP 5.5 MySQL] 110,371 pass(es).
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch no-vendor-1475510-81.patch. Unable to apply patch. See the log in the details link for more information.
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Drupal installation failed.
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch 1475510-94.patch. Unable to apply patch. See the log in the details link for more information.