Cross-language commands for unified developer experience.
The DX Commands initiative aims to standardize development commands across various programming languages and framework, ensuring uniform commands for everyday tasks.
It establishes a "contract" for developers, ensuring that commands like build
,
reset
, and info
consistently perform the same functions in every project.
Command | Short description |
---|---|
build |
Build or rebuild the project |
assemble |
Assemble a codebase using project code and all required dependencies |
provision |
Provision application within assembled codebase |
info |
Display project information |
lint |
Check coding standards for violations |
lint-fix |
Fix violations in coding standards |
test |
Run tests |
reset |
Reset project to the default state |
start |
Start development environment |
stop |
Stop development environment |
logs |
Show logs |
doctor |
Identify issues and offer resolutions for a stack |
update |
Update project files and tooling |
The commands are usually implemented as a command wrapper using a shell script,
package configuration (e.g., package.json
or composer.json
), or a task
runner
Makefile, Ahoy,
or Task.
The example implementation of the commands is available in the .ahoy.yml file.
Check it out locally and run ahoy build
to see how it works (you need to have
Ahoy installed):
$ ahoy build
[INFO] Building project
Would run pre-flight checks.
>> All containers and build files will be removed. Proceed? [y/N] y
Would remove containers and all build files.
Would build and start Docker containers.
Would assemble project and all dependencies.
Would run provision operations.
Would find problems with current project setup.
Would print project information
[INFO] Build complete
- DrevOps Scaffold implements these commands for Drupal consumer site development
- Drupal extension scaffold implements these commands for Drupal extensions development
- Scaffold implements these commands for Shell, PHP, and Node.js projects.
Please feel free to provide feedback or propose to add more commands to the proposed list by opening a new issue.