Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Latest commit

 

History

History
131 lines (78 loc) · 7.1 KB

tooling.md

File metadata and controls

131 lines (78 loc) · 7.1 KB

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.

System-level packages

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.

Validation & testing tools

These tools are installed automatically by BLT via Composer.

Tool
Behat
PHPUnit
PHP Code Sniffer

Local environments

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.

CI/CD solutions

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.

Hosting

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 executing php --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:

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.