A proper server environment and automated tests are important for a successful software project. It allows you to work efficient and it detects easily errors in changes. In this release window, it was time to upgrade our development stack to be ready for the future.
Continuing our proven release strategy, as it is the fourth Thursday in month, we deliver also some new feature versions for DPCalendar, DPCases and DPAttachments. The following new releases are published today for you:
The next chapters do highlight some of the most important changes in this release window. Main focus was on system testing improvements. But we made also some nice new features like external events indexing in smart search.
System testing stack upgrade
Since 2015 we write system tests for our bug fixes and new features with the PHP project Codeception. Actually we have over 3500 system tests for our Joomla extensions. As we were still using old versions of the testing software, it was time to upgrade our stack and improve our setup for the increasing demand. This was more of a base work where you as Digital Peak customer get indirectly a profit out of it. We updated our automated system testing stack to selenium 4 and Codeception 5 and the tests are executed as default with MySQL 8 in strict mode. This allows us to write better tests which are executed faster. Therefore we added some breaking changes to our public Docker project DPDocker.
At the same time we introduced DPCeption, which offers some convenient modules for extension system tests. These modules are automatically loaded when running the system tests through DPDocker.
You can read more about the changes here:
- https://github.com/Digital-Peak/DPDocker/pull/52
- https://github.com/Digital-Peak/DPDocker/pull/53
- https://github.com/Digital-Peak/DPDocker/pull/54
- https://github.com/Digital-Peak/DPAttachments/commit/4fd25bb3818760778df007c45ba75306b930af45
- https://github.com/Digital-Peak/DPAttachments/commit/981c9f7adad2a50b4bfa00693573153ac6237263
- https://github.com/Digital-Peak/DPAttachments/commit/29df217796d531a9f6fc69c3eb4c003407c883b4
MySQL 8 and strict mode improvements
This is again a change where direct impact is not obvious when DPCalendar was running already on your system. But in Joomla 4, compatibility with MySQL 8 and strict mode was improved. The empty dates are not anymore stored with the string "0000-00-00 00:00:00", but with an empty value (null) instead. This has also a slightly resource impact as less space is used.
Our extensions DPCalendar, DPCases and DPAttachments follow now that pattern and all dates are initialized with null as default value and not anymore with the zero date string which is incompatible with MySQL 8.
DPCalendar: External events are added in smart search
The default search engine in Joomla 4 is smart search, which indexes content in an efficient way and allows to search fast for keywords. DPCalendar is supporting it since day one with native events. External events like from Google calendar or iCal can only be searched through the old search component. In DPCalendar 8.11.0 we are breaking up that limitation a bit and external events can be indexed now on Joomla 4 when they are cached in the database.
This requires that the client needs to set up a cron job which syncs external events with database caching and runs the indexer afterwards. This can be achieved with the following commands in your cron tab entry:
/usr/bin/php {site_base}/administrator/components/com_dpcalendar/cli/eventsync.php
/usr/bin/php {site_base}/cli/joomla.php finder:index
Bugfixes
We are eager to improve our extensions on a regular basis. That's why every major/feature release does contain also bug fixes and small enhancements as well to improve the stability and performance.
DPCalendar, DPCases and DPAttachment got this time also a some bug fixes. A full changelog is added in the respective download release description on our download site.
Upgrade considerations
Updating to DPCalendar, DPCases or DPAttachments is straight forward as layouts got almost no changes.
Kind regards
Allon Moritz aka laoneo
Founder of Digital Peak