It's my pleasure to introduce Acquia BLT, a development tool for generating new Drupal projects using a template derived from our Professional Services' best practices.
We began building and using BLT internally over the past year. Our goal was to codify a set of tools and conventions that would allow us to:
- Easily implement Automated Testing, Continuous Integration & Deployment
- Reduce project setup time and developer onboarding time
- Improve the quality of our sites through enforcement of best practices
After implementing BLT on dozens of projects, we now have a stable and powerful tool that measurably improves our project quality and velocity. Using it allows us to effectively lower the bar for creating enterprise-ready Drupal sites, and affords us the time (and luxury) of tackling the more interesting challenges of building Drupal sites.
Acquia has made the Drupal 8 version open source on GitHub.
Here a few tantalizing examples of ways that Acquia BLT can improve your project development process:
- Prevent developers from ever committing invalid code. BLT uses git pre-commit hooks to check staged code against Drupal Coding standards before it ever leaves the developer's machine.
- Fully-functional Behat and PHPUnit tests out-of-the-box. BLT provides the libraries, configuration, commands, and example tests to get you up and running quickly.
- Travis CI integration (nearly) out-of-the-box. With minimal configuration, your new Drupal site will be performing code validation and running automated tests for each GitHub Pull Request before the code is merged.
- Enforce proper patching workflows for modified core and contrib. BLT does not commit any dependencies (Drupal core and contrib included) to the canonical repository. Instead, it downloads and patches dependencies as part of a build process that generates a production safe artifact.
By offering these improvements to development workflow, BLT can bring tremendous value to technical teams—particularly those who are seeking to implement enterprise best practices on their Drupal sites (automated testing, CI, CD, coding standards, etc.).
You may be thinking to yourself "Great, so I can throw away all of my dev tools and just use BLT?" Not so fast. Let's disambiguate Acquia BLT from other, similar tools by discretely defining the scope of its responsibility. BLT is built to:
- Provide a standard project template for Drupal based projects
- Provide tools that automate much of the setup and maintenance work for projects
- Document and enforce Drupal standards and best practices via default configuration, automated testing, and continuous integration
It is not intended to provide:
- Drupal application features (e.g., workflow, media, layout, pre-fabbed content types, etc.) @see Lightning
- A local hosting environment. @see Dev Desktop
- A replacement for good judgement (as with Drupal, it leaves you the freedom to make mistakes) or Professional Services
So what is in it exactly? Here's the comprehensive list of features:
- Documentation templates (architecture, onboarding, how-tos, etc.)
- Git Hooks - prevent invalid code from ever being committed!
- Testing Framework - out of the box Behat & PHPUnit testing!
- Commands for common project tasks:
- Executing tests and validating code
- (Re)building and patching dependencies
- (Re)installation of Drupal
- (Re)building front end assets (e.g., CSS compilation)
- Production-safe artifact generation and deployment
- Syncing local development environments with upstream environments
- Continuous Integration - Out of the box Travis CI integration!
If Acquia BLT seems like a good fit for your team, free to jump in by and follow the tutorial for creating a new Drupal site using BLT.
Frequently asked questions:
- Can I use Acquia BLT on an existing project? Yes, but you'll need to go through the manual (possibly difficult) process of re-structuring your project to match BLT's architecture.
- Can I use BLT on a Drupal 7 project? No. We currently have no plans to make a Drupal 7 version of BLT available.
- Do I have to use Acquia Cloud in order to use Acquia BLT? No, you can use any hosting provider, but BLT's default configuration is specifically tailored for Acquia Cloud. You'll need to do some minor customization to use another provider.
- What skill level does using BLT require? Intermediate to advanced. BLT can improve quality and velocity by providing automation of complex tasks, but automation does have a cost. When it breaks, it requires a skilled technician to debug and fix. For this reason, we do not recommend that novice Drupalist or developers use BLT without support from more senior colleagues.