BLT (Build and Launch Tool) provides an automation layer for testing, building, and launching Drupal 8 applications.
You can find all BLT documentation on Read the Docs:
- Latest release documentation (10.x) (best for guidance on general issues and best practices)
- Previous release documentation (9.2.x) (best for features specific to 9.2.x)
See INSTALL.md for a list of prequisites and links to instructions for creating new projects, adding BLT to existing projects, and updating BLT.
BLT generally has two supported releases at any given time, each corresponding to a major semantic version. The newest supported major version will receive bug fixes and new features, while the penultimate major version will receive only critical bug and security fixes for six months. Major and minor releases with new features and bug fixes occur on the first Wednesday of every month. Security and bug-fix releases occur only when necessary on the third Wednesday of every month.
This is intended to coincide with the Drupal core release cycle, so that users can continue to use a single BLT major release through the lifecycle of a Drupal core minor release.
BLT version | Support status | End of life | Drupal versions* | Drush versions |
---|---|---|---|---|
10.x | Supported, stable | >=May 2020 | 8.6, 8.7 | >=9.5.0 |
9.2.x | Bug fixes only | Dec 2019 | 8.6, 8.7 | >=9.4.0 |
<=9.x | Unsupported | May 2019 | 8.5 | >=9.1.0 |
*Note that when a particular release of any package (such as Drupal or PHP) stops being supported by its maintainer, BLT may cease supporting that release as well. For instance, as of December 2019, BLT 10.x will no longer support Drupal 8.6, and will instead support Drupal 8.7 and 8.8 in accordance with Drupal security policy.
BLT is designed to improve efficiency and collaboration across Drupal projects by providing a common set of tools and standardized structure. It was born out of the need to reduce re-work, project set up time, and developer onboarding time.
Its explicit goals are to:
- Provide a standard project template for Drupal based projects
- Provide tools that automate the setup, testing, launching, and maintenance work for projects
- Document and enforce Drupal standards and best practices via default configuration, automated testing, and continuous integration
Its scope is discretely defined. It is not intended to provide:
- Drupal application features (e.g., workflow, media, layout, pre-fabbed content types, etc.)
- A local hosting environment
- A replacement for good judgement (as with Drupal, it leaves you the freedom to make mistakes)
- Local Git Hooks
- pre-commit: Checks for Drupal coding standards compliance
- commit-msg: Check for proper formatting and syntax
- Testing Framework.
- Behat: default
local.yml
configuration, example tests,FeatureContext.php
- PHPUnit: default tests for ensuring proper functioning of BLT provided components
- Behat: default
- Commands to automate project tasks, like:
- Test execution
- Frontend asset compilation
- Syncing environments
- Deployment Artifact Generation
- Building production-only dependencies
- Sanitation of production code
- Continuous Integration & Deployment
BLT is provided as an open source tool in the hope that it will enable developers to easily generate new Drupal projects that conform to Acquia Professional Services' best practices.
Please feel free to contribute to the project or file issues via the GitHub issue queue. See CONTRIBUTING.md for contribution guidelines and instructions.
We also provide a limited FAQ for common issues.
Copyright (C) 2016 Acquia, Inc.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.