Releases: gaambo/deployer-wordpress
v4.0.0
This release has been in the works for a long time. I've been using v4 on projects for nearly a year and it's working great!
v4 is a major version that adds a new packages system to support more custom code (multiple mu-plugins, plugins, themes), adds multisite support
Info: This release does not yet officially support Deployer v8, since it's not released yet. See #15
Key Changes
- Uses
current_pathinstead of symlinkedrelease_pathby default in the examples - Better Localhost Support: Proper context handling for local operations with consistent path resolution.
- Multisite Support: Set
wp/multisiteflag for proper network-wide database URL replacements. - New Language Tasks: Tasks for syncing WordPress language files:
languages:push,languages:pull,languages:sync,languages:backup:* - Code Quality: Autoloading, code-quality tools and test suite
New Packages System
Unified way to manage custom themes, plugins, and mu-plugins:
set('packages', [
'custom-theme' => [
'path' => '{{themes/dir}}/custom-theme',
'assets' => true,
'assets:build_script' => 'build',
'vendors' => true,
],
]);The old theme, plugin and mu-plugin tasks still exist and work. I'm planning to remove them in a future version. We recommend updating to the new package system.
New Recipes
recipes/simple.php- For standard rsync deploymentsrecipes/bedrock.php- For Roots Bedrock projects
⚠️ Breaking Changes
current_pathis now the primary deployment target- Task file locations: Moved from
src/tasks/totasks/ - Removed
advancedrecipe: Usesimpleorbedrockinstead - Removed
:synctasks: Use:pushand:pullinstead
Upgrading from v3.x
- Set
current_pathon all hosts (remote and localhost) - Migrate to packages: Convert theme/plugin build configs to the new packages system. Optional, but recommended
- Update recipe: Switch to
recipes/simple.phporrecipes/bedrock.php - Check examples: Review
examples/simple/orexamples/bedrock/for patterns - Replace
:synctasks: Update any custom tasks using:syncto use:pushor:pull
Documentation
See CHANGELOG.md for complete changes and README.md for updated documentation.
v3.1.0
v3.0.0
- Did a large refactor of paths (release_path, current_path, document_root)
- Provide two recipes (base and advanced) and examples for both
- v2.0.0 did not work with symlink deployments, this now works again (see #8)
- Updated from Deployer 7.2 to 7.3
- New config options (see
set.php):wp/configFilesfor wp-config/wp-config-local files which should be protected by more restrict file permissionswp/configFiles/permissionsfor the chmod permissions to apply to the configFiles- Removed
document_root- userelease_or_current_pathinstead
- New/changed task names:
push_codenow is calledupdate_codeagain for parity with PHPDeployer.
Changes since v3.0.0-alpha
- Fix: Composer default command not using
composer_optionsvariable.
Upgrading:
- If you haven't upgraded to v2.0.0 yet, it's best to upgrade to 3.0.0 directly
- Have a look at the example files. Your deploy.php will get much smaller and require less configuration.
- Also the new version is more smiliar to PHPDeployers default common recipe.
v3.0.0-alpha
- Did a large refactor of paths (release_path, current_path, document_root)
- Provide two recipes (base and advanced) and examples for both
- v2.0.0 did not work with symlink deployments, this now works again (see #8)
- Updated from Deployer 7.2 to 7.3
- New config options (see
set.php):wp/configFilesfor wp-config/wp-config-local files which should be protected by more restrict file permissionswp/configFiles/permissionsfor the chmod permissions to apply to the configFiles- Removed
document_root- userelease_or_current_pathinstead
- New/changed task names:
push_codenow is calledupdate_codeagain for parity with PHPDeployer.
Most of it stems from the issues surfaced in #8
v2.0.0
- Updated from Deployer 6.x to 7.x
See docs for more information.
Most notable changes:- New format for yml-files which can now also include configuration.
- The
localis not available any more. InsteadonceandrunLocallyshould be used. For theme assets the example uses a function callback and theonhelper to optionally run those build tasks on the local host. - When deploying you can't select a host by name or stage anymore. Instead you have to use labels (eg a
stagelabel). If you've useddep deploy productionyou now have to usedep deploy stage=productionand set the stage label in your yml file.
- Switched to a single base recipe which can be included and built upon. See
examples/deploy.php. - The new recipe and examples uses yml-files for project-specific configuration so the
deploy.phpis a dropin file and has no configuration in it. - PHP 8 compatibility.
- Fixes issues with rsync flags/options and
'.
Upgrading:
If you've used the default recipe it's probably easiest to copy the new example deploy.php and update your yml-file with project-specific configuration. If you have added any other tasks/features to your deploy.php make sure you upgrade them too.
If you've used most of the core functions of this library or just the examples, the upgrade should only take a few minutes.