All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed - Set the
opcache.revalidate_freq
to0
in theslic
andwordpress
containers to avoid issues with cached files in tests.
- Fixed - Run the
playwright install
command as root, allow running Playwright tests as theslic
user. - Change - The
playwright install
command will now install only the Chromium browser and its dependencies.
- Fixed - Properly read changes and restart stack after using the
slic php-version set
command. - Added - PHP 8.3 docker images.
- Change - Update GitHub action versions to remove node notices.
- Change - Build slic images from the latest PHP patch versions.
- Added - The
playwright
command to Playwright commands in the stack. - Added - The
less
binary to theslic
container (to correctly format wp-cli output). - Added - The
p
alias to theslic
container to allow running Playwright commands withp <command>
, similar toc <command>
to run Codeception commands.
- Added - The
slic
command now loads the.env.slic.local
file from the target directory if it exists. (thanks @cliffordp) - Added - The
chrome
container shm size is now set to256m
by default, and is controllable via theSLIC_CHROME_CONTAINER_SHM_SIZE
env var. (thanks @maurisrx)
- Change - the
airplane-mode
command now installs the plugin in the must-use plugins directory instead of the plugins directory. - Fixed -
.bat
file now uses the correct path to theslic
executable on Windows.
- Added - The
slic update-dump
command to update a dump file for the current project, with an optional WordPress version update, e.g.slic update-dump tests/_data/dump.sql latest
.
- Change - Disable WordPress's automatic updating in slic containers via docker compose
WORDPRESS_CONFIG_EXTRA
defines. See comments in.env.slic
to customize this behavior.
- Change - Build
linux/arm64
images for theslic
andwordpress
containers to avoid issues when runningslic
on ARM machines.
- Change - Remove
version
property from docker compose .yml files as it's obsolete since v2.25. docker/compose#11628
- Change - Update the
npm
version to18.13.0
- Change - Update the
nvm
version tov0.39.7
- Fixed - Ensure
nvm
cache directory is world-accessible to allow use ofnvm install
- Change - Allow controlling the value of the
WP_HTTP_BLOCK_EXTERNAL
constant using theSLIC_WP_HTTP_BLOCK_EXTERNAL
environment variable defined in the.env.slic.run
configuration file; set totrue
by default to block all outgoing HTTP requests from WordPress. - Change - Allow controlling the value of the
DISABLE_WP_CRON
constant using theSLIC_DISABLE_WP_CRON
environment variable defined in the.env.slic.run
configuration file; set totrue
by default to disable the WordPress cron system.
- Fix - Added
extra_hosts:"${host:-host}:host-gateway"
to slick-stack.yml for Linux compatibility, enabling Xdebug without modifying the XDH environment variable. Ref.
- Change - Update base WordPress container from 6.1 to 6.2.
- Change - Add WP CLI to the
wordpress
container aswp
.
- Change - Configure
slic
andwordpress
containers consistently withphp.ini
configuration file. - Change - Set
xdebug.log_level=0
inslic
andwordpress
containers to avoid nags in separate process running.
- Change - Enable xdebug coverage mode in all PHP based docker containers when xdebug is enabled via:
xdebug.mode=develop,debug,coverage
.
- Change - Tag again to update WordPress version to 6.1 (the last WP version with a PHP 7.4 image).
- Change - Update WordPress version to 6.1 (the last WP version with a PHP 7.4 image).
- Fix - broken CRLF line breaks via slic real-time commands due to docker compose v2.2.x being used Docker compose issue.
- Updates slic-stack.site.yml for full site testing.
- Adds check for
site
target to refrenceslic_wp_dir()
when running commands.
- Change - Default to Composer version 2.
- Change - Leverage Docker Compose syntax to manage network aliases and service dependencies. Clean up a remove code.
- Add the
dc
command to run Docker Compose commands in the stack. - Support the
SLIC_DOCKER_COMPOSE_BIN
environment variable to allow for the use a different Docker Compose binary, thedocker compose
one is used by default.
- Fix - issue 142 ensure the hosts file in the docker container contains a tab character before trying to explode it.
- Added - Pass through the COMPOSER_AUTH environment variable to the slic docker container to allow composer installs for private or otherwise protected dependencies. Especially useful when running in GitHub Actions.
- Added - The PHP exif extension to the slic container to allow
slic composer install
commands to succeed when this extension is required.
- Change - No longer build gd in the slick docker container with AVIF, fixing external dependency on the currently down code.videolan.org, and speeding up builds - more info.
- Change - use
tmpfs
for thedb
andredis
services data directories to improve performance on Linux machines.
- Changed - Add docker build caching using the GitHub Cache Backend when publishing docker images via GitHub actions.
- Change - Display composer version in
slic info
. - Added - The
--skip-rebuild
option to theslic php-version set
command to allow setting the PHP version without rebuilding the stack in order to speed up CI runs. Example:slic php-version set 8.1 --skip-rebuild
- Fix -
slic php-version help
will now properly show command help text. - Fix -
slic php-version
will now properly use the default PHP version if theSLIC_PHP_VERSION
env var is not set.
- Change - The WordPress PHP7.3 image is only available in for WordPress 5.9.x.
- Change - Convert docker image builds into single matrix GitHub workflows.
- Added - Add a PHP 8.2 slic/WordPress docker image build. PHP8.2 is using WordPress version 6.1.1.
- Change - Use docker build arguments when publishing docker containers.
- Change - Bump action docker/[email protected] to docker/[email protected]
- Change - Bump action docker/[email protected] to docker/[email protected]
- Change - Bump nvm version from v0.39.1 to v0.39.3 in slic docker image.
- Fix - Modernize variable syntax to avoid PHP 8.2 deprecation notices.
- Fix - Enable and disable XDebug correctly in WorPress and slic container removing restart requirement.
- Fix - Avoid issues with missing
/usr/sbin/sendmail
during WordPress installation. [#134]
- Fix - Simplify the
restart_all_services()
code so that containers are all shut down and then all started.
- Fix - Add the
intl
PHP module to the container.
- Fix - Ensure actions that need to execute after containers start actually wait until those containers start.
- Feature - Added the
slic exec
command that allows bash command execution within the stack. [#31] - Fix - Set the Composer cache directory default location correctly. [#78]
- Tweak - Add
SLIC_PHP_VERSION
toslic info
. - Tweak - Make the
Valid Targets:
output a bit less readable duringslic info
in favor of keeping the env values visible.
- Feature - Prompt the user to stop containers before updating.
- Feature - Add the
slic php-version
command and allow for switching between PHP versioned containers. - Fix - Allow
wordpress.test
to be resolvable during test execution by placing it in the/etc/hosts
file of theslic
andchrome
containers. - Fix - PHP 8.0+ compatibility fix for WordPress zip downloads.
- Fix - Prevent looping over the same test suite when executing
slic run
. [#118] - Fix - Better handling of checking for services that are up.
- Switch the
slic-stack.yml
to use the new Docker images forslic
andslic-wordpress
.
- Generate Docker images for
slic
andwordpress
containers.
- Fixes for the run command when executed while the containers are not already running.
- Scaffold in a
/cache
directory to store test-related information. - PHP 8 deprecation warning fix.
- Ensure that the right flags are passed during docker-compose command execution when in non-interactive mode.
- Big overhaul of documentation within the tool.
- Now saving the state of XDebug when running
slic shell
multiple times. - Added XDebug 3 compatible
php.ini
settings.
- Rebranded
tric
toslic
. - Consolidated many of the containers into a single
slic
container to simplify the stack and reduce the time to start up and shut down containers. - Containers are no longer brought down upon completion of a command.
- Removed the
serve
command. Since containers remain up, theup
command can be used to start the stack and make the local site available. - Reworked how
slic
handles npm. It now usesnvm
under the hood and automatically installs the version of node that is dictated by.nvmrc
. - Removed the
npm_lts
command. It is no longer needed after the reworking of thenpm
command.
- Add the
ps
command to list the current containers information. - Fix
mariadb
image to10.7.3
.
- Update the Composer container to use PHP 7.4.
- Set
xdebug.log_level=0
in the stack configuration to avoid XDebug warnings from breaking code.
- Add the
mysql
command to quickly open amysql
shell in the running database container of thetric
stack. - Add the
wp
command as alias of thecli
command.
- Set the version of the
lucatume/codeception
container tocc3.1.0-v1.1.1
.
- Version bump to pull the latest version of the fixed
codeception
container.
- Use the
seleniarm/standalone-chromium
container for thechrome
service on ARM architecture machines. - Add the
pcntl
extension to thecodeception
container.
- Add support for a Mailcatcher container (thanks @sc0ttkclark).
- Updated the
node
version to10.16.0
, this affects thenpm
command and any other command usin thenpm
container. - Added the
host-ip
command to get the host machine IP address containers will be able to use to connect to the host (e.g. when setting up XDebug on Linux).
- Fixed an issue where the path to the WP directory would not build correctly on Windows systems.
- Allow opening a shell in the
cli
service to run wp-cli commands just usingtric cli
.
- Set
COMPOSER_HTACCESS_PROTECT=0
explicitly in thedocker-compose
configuration file to avoid an.htaccess
file being created in the root directory of the current target.
- Update the WordPress image version, in the
tric-stack.build.yml
file, from5.5
to5.6
to fix CI build issues.
- Add an argument, to the
reset
command, to remove the default WordPress (/_wordpress
) installation directory usingtric reset wp
.
- Added the
composer-cache
command so the host machine's composer cache can be leveraged within tric containers.
- Updated default WordPress image to
5.6-apache
.
- Updated default repo org to
the-events-calendar
.
- Fix an issue where commands that required a ready and available WordPress installation in the
tric
WordPress directory would not take care to scaffold and install it; e.g.cli
orsite-cli
.
- Fix an issue where the
USING_CONTAINERS
environment variable would be duplicated in environment files set up bytric
init command. - Fix an issue where a negative answer to build targets with sub-directories, e.g. TEC and ET, would result in the target being built anyway.
- Fix the XDebug version and
wordpress
serviceDockerfile
to keep using version2
and not update to version3
on a rebuild (e.g. one triggered bytric update
ortric build-stack
commands). - Add the
tric ssh
command to allow opening a shell in a running stack service; differently from theshell
command, thessh
command will not start the service if it's not already running.
- Add support for the
TRIC_HOST
environment variable. This will override the default host machine IP address lookuptric
would perform on Linux or the hard-wiredhost.docker.internal
hostnametric
would use on Windows and Mac host to set the defaultxdebug.remote_host
value. - Default to the host machin IP address to set
xdebug.remote_host
only if the host has not been set by means of a call totric xdebug host <host>
or by setting theXDH
environment variable explicitly. - Fix an issue that would reset run settings stored in the
.env.tric.run
file when using thetric xdebug <key> <value>
command. - Correctly handle Docker network removal in parallel tasks to avoid "error while removing network" errors.
- Add support for
tric run
to run all the avaiable Codeception test suites from the target one after another.
- Removed the 3s wait at start of the
codeception
service. - Fixed (in the context of the lucatume/dockerfiles repository) an issue that would cause Codeception tests to exit
0
on failure and not1
as expected.
- Fixed volumes setup to make sure the volume, and the host file structure, created by WordPress container is owned by the current user and not
root
. - Fixed and issue that would change, on Linux, the file modes of all the used plugins, to
a+rwx
when using therun
command; fixes #36
- Executing
tric use
without a target now attempts to set the current working directory as the target. tric info
now outputs all valid targets, which is whattric use
without a valid target used to do.- The Composer prompt from
tric init
no longer appears ifcomposer.json
is not found, likewise for the NPM prompt ifpackage.json
is not found. - Fixed an issue that would prevent the
npm
andnpm_lts
services from correctly returning their exit status. - Add support for the
--pretty
flag to thenpm
andnpm_lts
commands to print a more human-readable output.
- Fixed two issues in the
target
command where the command would fail if no previous target had been set. - Set the start of the random network subnet pool for parallel processes used by the
target
command to a higher number to reduce the chance of running into overlapping pool issues.
- Activate all debug options in the
wordpress
service. - Use a custom WordPress image for the stack, based on the default
wordpress
one, but modified to support and use XDebug.
- Fixed a smaller issue in the
target
command.
- Add the
site-cli
command to start a wp-cli container on a running and ready WordPress stack.
- Add a check to ensure a target is set for commands that require it.
- Add the
npm_lts
service and service to the stack to runnpm
commands on the current LTS version of node.
- Fixed an issue where the terminal columns and lines detection would cause issue in CI context.
- Fixed an issue where the
npm
image would not build correctly in CI context.
- Add support for the
bash
sub-command to thetric cli
command to allow opening abash
shell into thecli
container to manage the WordPress installation currently being served bytric serve
.
- Add support for multiple commands in the
target
command to allow running a set of commands on a set of targets.
- Update the WordPress version used in the stack to
5.5
. - Fix handling of default answers in prompts.
- Fix an issue where
docker-compose
would display an error due to missing default value for theTRIC_CURRENT_PROJECT_SUBDIR
env var.
- Fix an issue where the
function-mocker-cache
volume would be mounted withroot
ownership on Linux systems causing Function Mocker to fail while trying to set up cache in plugins that use it.
- Added the
tric target
command to support running the same command against multiple targets.
- Fix an issue where the
tric init
command would not correctly pick up the existing environment files if not running from the plugin directory. - Added the
TRIC_INTERACTIVE
,TRIC_BUILD_PROMPT
andTRIC_BUILD_SUBDIR
env var to thetric info
report.
- Added
tric build-subdir
which allows you to control whether sub-directories (e.g.common
in The Events Calendar) should be built during composer/npm commands or not. - Fix an issue where the
build-prompt
status was reported incorrectly.
- Fix an issue with file modes on the WordPress container that would make its
wp-content
directoryroot
owned on Linux hosts.
- Fix parallel processing closure argument requirements.
- Allow for additional git upstreams other than GitHub.
- Fix and re-enable the parallel processing functionality.
- Temporarily disabled the parallel processing functionality.
- When running parallel processes, use random subnets to avoid container collision.
- Add support for
DB_
prefixed database credentials and name in the original.env.*
files.
- Added
tric upgrade
which allows you to upgradetric
to the latest tagged release.
- Prompt to
tric update
when container build version are out of sync from the tric version. - Output npm error log when one is generated.
- Adjust pathing of subdirectories within the tric stack so that npm can find a
.git
directory when performingnpm install
. - Suppress the
fixuid
command output in the npmdocker-entrypoint.sh
. - Separated out poolable (passive) command functions from realtime command functions to prevent issues with interactivity.
- Added phpcs and phpcbf commands.
- Added parallel processing of commands.
- Changed
tric build
totric build-stack
.
- Ensure
.htaccess
file is present in_wordpress
.
- Initial version