The following is a list of Operating System level tools that BLT uses.
Not all of these are absolutely required. Some are required only when using certain features of BLT, like Selenium-based testing or Drupal VM integration.
Please see System Requirements for installation instructions.
Tool | Required | Purpose |
---|---|---|
PHP | Yes | Required by Composer, Drush, Robo, etc. |
Composer | Yes | Package management. |
Git | Yes | Version control. |
Drush | Yes | CLI integration with Drupal. |
java | No | Required by Selenium. |
chromedriver | No | Required by Selenium. |
ansible | No | Required by Drupal VM. |
vagrant | No | Required by Drupal VM. |
virtualbox | No | Required by Drupal VM. |
Yarn | No | Required by Cog. |
NVM | No | Required by Cog. |
These tools are installed automatically by BLT via Composer.
Tool |
---|
Behat |
PHPUnit |
PHP Code Sniffer |
You can use any Drupal-compatible local development environment with BLT. However, BLT provides specific support for the following tools.
Tool |
---|
Acquia DevDesktop |
Drupal VM |
Please see local development for more information.
You can use any Continuous Integration or Continuous Delivery tool with BLT. However, BLT provides specific support (in the form of default configuration files) for the following tools.
Tool |
---|
Acquia Pipelines |
Travis CI |
Please see Continuous integration for more information.
You can host a BLT project in any Drupal-compatible hosting environment. However, BLT provides specific support for Acquia Cloud and Acquia Cloud Site Factory by:
- Providing cloud hooks
- Providing Acquia-specific default configuration in settings.php
- Structuring project directories to match Acquia Cloud repository's default structure
PHP is required by various tools, including Composer, Drush, Robo, and Drupal itself. Please ensure that:
- You are using PHP 5.6+. You can check your existing version by executing
php -v
- You set the memory_limit for PHP to 2G or higher (for Composer). You can find the
php.ini
file for your PHP CLI by executingphp --ini
and looking for the "Loaded Configuration file".
Composer is used to manage project level dependencies for BLT and for Drupal. It is the defacto package manager for the PHP community, and is used by Drupal Core itself.
See dependency management to learn how to use Composer in conjunction with BLT.
- Update to the latest version of composer using
composer self-update
Git is a distributed version control system. It is the VCS tool for the Drupal community.
Drush is a command line shell and Unix scripting interface for Drupal. BLT uses it to communicate with Drupal via the command line.
Drush is both a system level and a project level dependency, which is unusual. Because of this, it is possible to have one version of drush on your system and a different version of drush used within your proejct directory. This is useful but frequently causes confusion.
Drush uses a special "launcher" script to look for a copy of drush that is specific to your project. BLT ships such project-level drush binary in the vendor/bin
directory of your project. Your global drush installation defer to the project level binary when executing drush
from within a BLT project directory.
BLT uses a drush.wrapper
script to ensure that all drush commands run within the project directory utilize the project's config file and aliases. See:
- https://github.com/acquia/blt/blob/8.x/template/.drush-use
- https://github.com/acquia/blt/blob/8.x/template/drush.wrapper
Java is required by Selenium, which is one option for executing Javascript Behat tests. You may choose NOT to use Selenium, in which case Java is not required. See testing for more information.
Headless Chrome is used by default for Behat tests, though you can also use Selenium or PhantomJS.
Special note for Docker users
Connections to Headless Chrome will occasionally time out in containerized environments such as Docker. See this issue for discussion and possible solutions: #2083
Chromedriver is required by Selenium to communicate with Chrome. Selenium is one option for executing Javascript Behat tests. You may choose NOT to use Selenium, in which case chromedriver is not required. See testing for more information.
Ansible is required by Drupal VM, which is one option for local development. You may choose NOT to use Drupal VM, in which case Ansible is not required.
Vagrant is required by Drupal VM, which is one option for local development. You may choose NOT to use Drupal VM, in which case Vagrant is not required.
Vagrant is required by Drupal VM, which is one option for local development. You may choose NOT to use Drupal VM, in which case VirtualBox is not required.
Yarn is a package manager for Javascript. It is required by Cog, which is one option for a Drupal base theme. You may choose NOT to use Cog, in which case NPM is not required.
NVM manages multiple versions of NodeJS ona single machine. It is required by Cog, which is one option for a Drupal base theme. You may choose NOT to use Cog, in which case NVM is not required.