UNRELEASED x.y.z (yyyy-mm-dd)
Bug Fixes:
- Updated environment path (
WARDEN_ENV_PATH
in scripts) to use physical vs logical current working directory to resolve issues with using symlinked file paths (issue #101) - Removed confusingly quoted placeholder values related to Blackfire from env file generated by
env-init
- Removed timeout for Selenium Hub, increased timeout for MFTF's
command.php
endpoint to 10 minutes
Version 0.2.3 (2020-02-14)
Bug Fixes:
- Fixed mutagen version check (issue #95); (#94 by blakesaunders)
Enhancements:
- Added
explicit_defaults_for_timestamp=on
todb
settings onmagento2
environment allowingsetup:db:status
to report clean (2.3.4 and later) (issue #89)
Version 0.2.2 (2020-02-09)
Enhancements:
- Updated sign-certificates command to specify "O" value and "extendedKeyUsage" to comply with stricter SSL guidelines (issue #85)
Bug Fixes:
- Fixed missing CN value on CA used to sign SSL certificates (issue #85)
Version 0.2.1 (2020-01-30)
Upgrade Notes:
If you're upgrading from version 0.1.x to 0.2.x for the first time, please reference upgrade notes for Warden 0.2.0 and plan accordingly.
Enhancements:
- Added support for using
~/.warden/.env
to configure aspects of Global Services (see docs for details) (issue #13) - Updated
sync start
to no longer callmutagen daemon start
as Mutagen now does this automatically. - Updated
warden install
to include short hostname in the common name used when signing the Root CA used by Warden allowing easier identification and interoperability when a single user is running Warden across multiple workstations.
Version 0.2.0 (2020-01-27)
Upgrade Notes:
As mentioned below this release of Warden brings with it an update to Traefik 2.1. The v2 line of Traefik completely overhauled the labelling system used to define routes. It also opens the door to new possibilities. All labeling on built-in environment configurations has been updated for compatibility with new versions of Traefik. However, this is a breaking change in the two following scenarios:
- The
local
environment type is being used. Whenlocal
env type is used, all config is contained in the project's.warden/
directory and routes setup via labels on the custom containers will naturally need to be updated. - Projects using custom labels applied via override files such as
.warden/warden-env.yml
may need to be updated.
Please reference the updated base environment definitions for examples of how to update the labels on custom definitions.
Environments referencing laravel.conf
in custom configuration within .warden
directory must update their configuration to reference the generic application.conf
instead as the file was renamed in the Nginx image for re-use in the future on additional environment types.
Docker images have all been re-located and/or mirrored to Quay with all built-in environment types having been updated to reference the images at the new location. Images currently on Docker Hub will remain available in order to preserve functionality of Warden 0.1.x release line, but will no longer be updated and compatibility with all functionality in Warden 0.2.0 is not guaranteed. Where these images are referenced in per-project configuration within the .warden
directory, it is strongly suggested these references be updated to use images at the new locations:
- https://quay.io/repository/warden/varnish?tab=tags
- https://quay.io/repository/warden/redis?tab=tags
- https://quay.io/repository/warden/rabbitmq?tab=tags
- https://quay.io/repository/warden/php-fpm?tab=tags
- https://quay.io/repository/warden/nginx?tab=tags
- https://quay.io/repository/warden/mariadb?tab=tags
- https://quay.io/repository/warden/mailhog?tab=tags
- https://quay.io/repository/warden/elasticsearch?tab=tags
Enhancements:
- Added native support for multi-domain projects without requiring per-project routing configuration. This is accomplished using wildcard rules in the new Traefik labeling configuration allowing Warden to automatically route any sub-domain of the
TRAEFIK_DOMAIN
value in.env
to the nginx and/or varnish container for handling by the application. - Added
warden debug
command which launches user into Xdebug enabledphp-debug
container for debugging CLI based workflows (issue #33; #35 by molotovbliss) - Added labels to
fpm
containers inmagento2
environment to support use of Live Reload via an injected JS snippet in the site header or footer (issue #62) - Added
WARDEN_ENV_NAME
as prefix to each container hostname in compose configs (issue #29) - Added
BYPASS_VARNISH
flag which when set in project.env
file will cause Traefik to route requests directly tonginx
container rather thanvarnish
(issue #63) - Added
laravel
environment type to support local development of Laravel based applications (issue #60) - Added Allure reporting support to Selenium setup for MFTF (#69 by lbajsarowicz)
- Updated Traefik container and configuration to deploy Traefik 2.1; this is a potentially breaking change as Traefik v2 overhauled the labeling used to auto-configure routing on containers. All labeling on built-in environment configurations has been updated, but where labels are used to configure Traefik in per-project configuration files such as in
.warden/warden-env.yml
the project may require a coordinated update to labeling for continued interoperability of the customizations with Warden 0.2.0+ - Updated Mutagen usage to rely on new commands and configuration in Mutagen 0.10+ (Warden will now throw an error if you attempt to start a sync and have a version of Mutagen older than 0.10.3 installed)
- Updated configuration setup for SSH tunnel container so it will automatically re-instate the needed configuration (if missing) when running
up
,start
, orrestart
to mitigate issue caused by macOS Catalina updates wiping out customizations to/etc/ssh/ssh_config
(issue #59) - Updated
env-init
command to include default values for available variables in the project's.env
making customization a bit easier (issue #32) - Updated default Elasticsearch version for
magento2
environments from 5.4 to 6.8 (issue #66) - Updated Selenium setup for MFTF to use hub and headless nodes by default (issue #67; #68 by lbajsarowicz)
- Updated environment templates to pass
TRAEFIK_DOMAIN
andTRAEFIK_SUBDOMAIN
intophp-fpm
andphp-debug
for use in documented install routine (issue #42) - Updated default PHP version for
magento2
environments from 7.2 to 7.3 (issue #75) - Updated default Varnish version for
magento2
environments from 4.1 to 6.0 (LTS) - Changed
laravel.conf
in nginx image to genericapplication.conf
- Updated defaults for nginx on
magento2
environments to be set in the docker env vs built into the nginx image; the image now defaults to loading the genericapplication.conf
with/var/www/html
as webroot
Bug fixes:
- Fixed broken incorrect Blackfire environment template name for magento1 env type (issue #48)
- Fixed inability to get help content specific to env sub-commands using
warden env <command> -h
Version 0.1.12 (2019-12-10)
Bug fixes:
- Fixed issue breaking SSH tunnel as used for port-forwards.
Version 0.1.11 (2019-11-26)
Enhancements:
- Added option to enable and setup Selenium for use with MFTF via flag in project's
.env
file (#40 by lbajsarowicz) - Added error message to
warden install
whendocker-compose
version in$PATH
is incompatible (#41 by lbajsarowicz)
Version 0.1.10 (2019-09-23)
- Added native support to Warden for using the split-database system in Magento Commerce during local development (#5 by navarr)
- Added support for optional Blackfire profiling which can be enabled via settings in the project's
.env
file (#12 by navarr)
Version 0.1.9 (2019-09-19)
- Pinned image for Traefik to use
traefik:v1.7
imgae vstraefik:latest
to resolve issues caused by Traefik 2.0 having breaking changes in the configuration API
Version 0.1.8 (2019-09-06)
- Introduced
NODE_VERSION
environment variable to specify which version of NodeJS to install in FPM images during container startup (by default v10 is now pre-installed inmage1-fpm
andmage2-fpm
images at the time of this release; latest images must be pulled from Docker Hub for this to work). - Fixed issue where if sub-directory included a relative symlink pointing
.env
at parent project's.env
file,--project-dir
passed todocker-compose
could be specified incorrectly when running warden from within the given sub-directory.
Version 0.1.7 (2019-08-23)
- All published ports now listen on
127.0.0.1
by default as opposed to0.0.0.0
for a local environment that is fully inaccessible to the outside world apart from using a proxy (such as Charles).
Version 0.1.6 (2019-08-10)
- Changed the default value
env-init
uses forTRAEFIK_SUBDOMAIN
toapp
(previously it would match the environment type) - Added mount of
~/.warden/ssl/rootca/certs:/etc/ssl/warden-rootca-cert:ro
to each env type'sphp-fpm
andphp-debug
containers to support FPM images appending this CA root to the trusted ca-bundle on container start - Added
extra_hosts
entry to set an entry in/etc/hosts
withinphp-fpm
andphp-debug
containers pointing the project's primary domain to the Traefik service IP address socurl
andSoapClient
(for example) may work inside a project's FPM services - Added FPM containers to the "warden" network so they'll be able to route http requests to Traefik
Version 0.1.5 (2019-07-19)
- Changed Mutagen polling interval from 20 to 10 seconds
- Removed
generated
directory from exclusions in Mutagen sync configuration (having this ignored breaks ability to step into generated class files during Xdebug sessions) - Fixed issue with Mutagen sync cofiguration causing
pub/static
(and other files) to have incorrect permissions resulting in 404'ing static resources - Fixed issue causing
warden env
to break when run from a path which contained a space (issue #3)
Version 0.1.4 (2019-07-15)
- Removed exclusion of 'node_modules' from Mutagen sync for Magento 2 to avoid breaking Dotdigitalgroup_Email module in vendor directory (this module includes a node_modules dir pre-installed).
Version 0.1.3 (2019-07-10)
- Added ability on linux to prevent warden from touching dns configuration when
~/.warden/nodnsconfig
is present. - Updated install routine to properly trust CA root on Ubuntu (previously warden install would simply fail)
- Updated DNS auto-configuration on linux systems to handle systemd-resolved usage.
- Fixed issue on Ubuntu where dnsmasq container would fail to bind to port 53.
- Fixed issue where lack of
~/.composer
dir (resulting in creation by docker) can cause permissions error inside containers. - Fixed issue with
bin/magento setup:install
allowing it to pass permissions checks (#2 by fooman) - Fixed issue where
env
andenv-init
commands failed to reset shell colors when printing error messages (issue #4)
Version 0.1.2 (2019-07-03)
- Added
warden shell
command for easily dropping into thephp-fpm
container (container name is configurable for supporting "local" environment types) - Added
max_allowed_packet=1024M
todb
containers for M1 and M2 environments to avoid imports or upgrade routines from failing on large packets. - Changed
php-fpm
andphp-debug
to use custom images based oncentos:7
as opposed to thealpine3.9
based official php-fpm images to avoid seg-faults when Source Guardian loader is installed alongside Xdebug. - Fixed issue with DEFINER stripping in
db import
allowing it to correctly strip from both TRIGGERS and ALGORITHM clauses.
Version 0.1.1 (2019-06-27)
- Fixed bug where 'db' commands broke due to template overhaul in 0.1.0 release.
Version 0.1.0 (2019-06-27)
- Changed the env type setup to automatically include additional configuration based on $OSTYPE.
- Changed the environment template structure to utilize per-OSTYPE docker-compose config additions where environments differ from one host OS to another (such as
magento2
env type, which uses plain mounts onlinux-gnu
but sync sessions ondarwin
) - Fixed a few error messages so they won't change shell text color permanently when they output.
- Fixed sync command to output error message when any sub-command is run on an env lacking a mutagen configuration.
Version 0.1.0-beta7
- Added Xdebug support via additional
php-debug
container which Nginx routes to based on presence ofXDEBUG_SESSION
cookie. - Fixed Elasticsearch images used in Magento 2 environment templates and configured for lower overall memory utilization upon container start for a smaller env footprint.
Version 0.1.0-beta6
- Added support for extending environment configuration on a per-project basis via
.warden/warden-env.yml
and.warden/warden-env.<WARDEN_ENV_TYPE>.yml
files - Added
local
env type to support projects which do not conform to any of the templated environments suppoprted out-of-the-box - Changed Traefik configuration to automatically use the warden docker network (eliminates need for
traefik.docker.network=warden
label on all proxied containers - Changed Traefik configuration to require containers be explicitly enabled for Traefik via the label
traefik.enable=true
- Changed docker-compose environment type templates to version 3.5 for better extendability in project override files
- Fixed bug where resolver setup on macOS would fail if
/etc/resolver
dir was already present during install (#1 by fooman)
Version 0.1.0-beta5
- Fixed issue with docker-compose exit codes would result in error messages from global trap
- Added auto-install of mutagen where not already present when any sync command is run
- Added support for WARDEN_WEB_ROOT env setting to publish a sub-dir into /var/www/html
- Changed images for php-fpm to use environment type specfic images from davidalger/warden repository
Version 0.1.0-beta4
- Added "env" command for controlling docker based per-project environments (currently this simply passes all commands and arguments through to docker-compose).
- Added "env-init" to add
.env
file with Warden configuration to the current working directory. - Added "sync" command with start/stop/list sub-commands for controlling per-project mutagen sessions.
- Added "db" command for connecting to mysql and importing databases into the db service.
- Added three environment types:
magento1
,magento2-mutagen
,magento2-native
with auto-selecting the correct M2 environment on Linux/macOS. - Fixed dnsmasq setup on Linux (nameserver is now configured on Linux when NetworkManager service is active during install; tested on Fedora 29)
Version 0.1.0-beta3
- Fixed infinite loop on initial setup routine.
Version 0.1.0-beta2
- Updated assertion to automatically execute "warden install" if installed metadata indicator is older than bin/warden.
- Fixed issue on Linux hosts where ssh_key.pub was unusable inside tunnel container due to bad permissions.
Version 0.1.0-beta1
- Initial beta release.