If you experience issues with a local BLT build, try using Dr. BLT to diagnose your problem:
If that isn't helpful, please post an issue on the GitHub issue queue including the following information:
- Your version of BLT,
composer info acquia/blt
- Your operating system
- The full log output of your BLT command, wrapped in a codeblock.
In seeking help, please keep the following points in mind:
- BLT is distributed under the GPLv2 license; WITHOUT ANY WARRANTY.
- The project maintainers are under no obligation to respond to support requests, feature requests, or pull requests.
- All contributions to BLT will be reviewed for compliance with Drupal Coding Standards and best practices as defined by the project maintainer.
Contributing to BLT¶
Developing BLT locally¶
If you'd like to contribute by actively developing BLT, we suggest that you clone BLT and also created a BLT-ed project for testing your changes.
Use the following commands to create a testable BLT-created project alongside BLT
git clone https://github.com/acquia/blt.git rm -rf blted8 composer install --working-dir=blt cp -R blt/blt-project blted8 cd blted8 git init composer install ./vendor/bin/blt install-alias rm -rf vendor composer update git add -A git commit -m 'Initial commit.'
blt-project directory will have a composer dependency on your local clone of BLT via a
../blt symlink. You can therefore make changes to files in
blt and see them immediately reflected in
Phing targets vs. Symfony commands?¶
While Phing and the Symfony Console can both accomplish some of the same tasks, they are different tools with different intended purposes. When developing functionality for BLT we are careful to choose the right tool for the right job.
Phing is intended to be a build tool. It is particularly good at stringing together multiple commands and tasks into a single target which can then be executed procedurally. We use Phing when our requirements are well suited to this strength.
The commands that Phing executes can, of course, be provided by anything. Some are native linux commands, some are provided by tools like Composer and NPM, while others may be provided by the Symfony Console component.
As a rule, we use Symfony console to provide fixed-scope commands. These commands should be flexible and have absolutely no intrinsic awareness of the greater build process. We use Phing to call commands within the context of a build process, executing them with specific argument values at the correct time.