- Unit testing via PHPUnit
- Code standards evaluation via PHP_CodeSniffer
- Build tools for plugin assets via Yarn and webpack.
Install Git for Windows: https://git-for-windows.github.io/
Install PHP7 and Composer: http://kizu514.com/blog/install-php7-and-composer-on-windows-10/
Install Node.js LTS: https://nodejs.org/en/download/
Install Yarn: https://yarnpkg.com/en/docs/install
Install Virtual Box: https://www.virtualbox.org/
Install Vagrant: https://www.vagrantup.com/
At the Command Prompt, install the following Vagrant plugins:
vagrant plugin install vagrant-bindfs vagrant plugin install vagrant-hostmanager vagrant plugin install vagrant-winnfsd
Windows users run Ansible on the VM (since it’s running Ubuntu) and not locally. You do not need to install Ansible manually.
Start Git Bash (it comes with Git For Windows)
Create a directory for your local development environment and
mkdir ~/Code/pressbooks-dev && cd ~/Code/pressbooks-dev
Clone pressbooks/trellis into
git clone email@example.com:pressbooks/trellis.git
Clone pressbooks/bedrock into
git clone firstname.lastname@example.org:pressbooks/bedrock.git site
cd ~/Code/pressbooks-dev/site composer.phar require pressbooks/pressbooks:dev-dev composer.phar require pressbooks/pressbooks-publisher:dev-dev composer.phar require pressbooks/pressbooks-book:dev-dev
~/Code/pressbooks-dev/trellis/group_vars/development/wordpress_sites.yml to reflect your desired local development site URL, replacing all instances of
pressbooks.test or whatever you prefer. For example:
wordpress_sites: example.com: site_hosts: - canonical: pressbooks.dev redirects: - www.pressbooks.dev local_path: ../site # path targeting local Bedrock site directory (relative to Ansible root) admin_email: email@example.com multisite: enabled: true subdomains: false ssl: enabled: false provider: self-signed cache: enabled: false env: domain_current_site: pressbooks.dev wp_home: http://pressbooks.dev wp_siteurl: http://pressbooks.dev/wp
You can leave
example.com as is unless you plan on setting up matching staging or production environments. In that case, you will need to update all instances of
~/Code/pressbooks-dev/trellis/group_vars/ to a consistent value. If you are interested in configuring a staging or production environment, you should consult the Trellis docs as that is outside the scope of this tutorial.
Trellis for Windows requires Administrator privileges when doing the initial provisioning. If UAC is enabled, make sure the initial
vagrant up is run from a command prompt with elevated privileges (Run as Administrator).
Start the default Windows Command Prompt (right click, run as Administrator)
Change to the
~/Code/pressbooks-dev/trellis/ directory and run
cd %HOMEPATH%\Code\pressbooks-dev\trellis vagrant up
Fully provisioning your development environment may take up to 30 minutes.
When finished, do a
vagrant halt, exit the Administrator Command Prompt, then redo
vagrant up in a regular user privileged Command Prompt.
The default Pressbooks username:password is
Access and error logs are located on the VM in following directory:
Unit testing in the VM:
vagrant ssh cd /srv/www/example.com/current bin/install-wp-tests.sh pressbooks_tests pressbooks_test '' 127.0.0.1 latest true composer test
Coding standards in the VM:
vagrant ssh cd /srv/www/example.com/current composer standards
- At the command prompt from the Pressbooks plugin directory, e.g.
yarnto install build dependencies.
- Then, run
yarn run devor
yarn run productionto build your plugin assets (
yarn run productionwill add a version hash to the asset manifest for browser cache busting).
In Git Bash:
cd ~/Code/pressbooks-dev/site composer.phar update pressbooks/pressbooks --with-dependencies composer.phar update pressbooks/pressbooks-publisher --with-dependencies composer.phar update pressbooks/pressbooks-book --with-dependencies