Dear community
This is our 2nd anniversary release and the 38th release in total! In February 2024 we presented Wavelog to the world. In the last two years Wavelog has gone through big changes, improvements, some bugs (that's normal, trust us) and was battle tested by you! We say thank you to all contributors, translators, testers and everyone who appreciates our work. TNX!
This release brings some essential improvements. The biggest enhancement lies in performance. We completely refactored the DXCC lookup for faster and more reliable identification. Session handling now uses HMAC SHA256 instead of bcrypt – this alone makes session key generation significantly faster. The caching system has been rebuilt from the ground up: besides the default file-based caching, Wavelog now supports Redis, Memcached and APCu for those who want to squeeze out even more speed. A new garbage collector takes care of expired cache files automatically.
Beyond performance, we've added useful features to the Advanced Logbook, improved the DXCluster, cleaned up legacy code for PHP 8.5 compatibility, and squashed numerous bugs along the way.
Check the full changelog below for details. 73!
- Added dataformat 'd M y' (by @kc9uhi)
- Fixed a bug where satellites w/o LoTW name weren't properly handled (by @kc9uhi)
- Fixed UI so date preset buttons default to UTC (by @kc9uhi)
- Fixed UI in create and edit station locations so pages are consistent, Fixed bug in US County dropdown (by @kc9uhi)
- Fixed db collation (by @kc9uhi)
- Added silent hybrid websocket connection for thirdparty tool (by @TnxQSO-Admin)
- Improved DXCC identification (by @AndreasK79)
- Fixed duplicate search in the Advanced Logbook (by @AndreasK79)
- Adjusted cat color in the DXCluster for bright themes (by @AndreasK79)
- Added a map for invalid gridsquares in DBTools (by @AndreasK79)
- Changed main link for VUCC DXCC gridsquare list to be fetched from our Github mirror (by @AndreasK79)
- Added potential DXCC for gridsquare search in Quick Lookup (alt-l) (by @AndreasK79)
- Added a check for IOTA against DXCC in DBTools (by @AndreasK79)
- Fixed public search so that only activated search logbooks are searched (by @AndreasK79)
- Can now blank CQ and ITU zones in batch edit in the Advanced Logbook (by @AndreasK79)
- Can now set blank CQ and ITU zone in QSO edit (by @AndreasK79)
- Callbook update in the Advanced Logbook now sets CQ zone (if not already set) (by @AndreasK79)
- Redesigned column and map options in the Advanced Logbook (by @AndreasK79)
- Added sort order and direction in the Advanced Logbook (by @AndreasK79)
- Fixed a message about selection QSOs in DBTools and CQ Zone checker (by @AndreasK79)
- Fixed error 500 if unit is set to mi or nmi in the Advanced Logbook (by @AndreasK79)
- Speed up Accumulated Statistics queries (by @AndreasK79)
- Fixed an issue for QSO display in Timeline when mode was selected (by @AndreasK79)
- Removed redundant incorrect CQ/ITU zone checker under search (use DBTools) (by @AndreasK79)
- Refactored LoTW login code to catch more possible errors (by @phl0)
- Added column with last modification time to LBA for debugging puposes (by @phl0)
- Reworked code for LoTW cert uploads to handle password-protected certificates and inform user accordingly (by @phl0)
- Rafactored LoTW code to catch rate limits on LoTW side properly (by @phl0)
- Added link to Wiki with LoTW FAQs on LoTW cert upload page (by @phl0)
- Fixed a bug where DCL QSL received was set when updating the DARC DOK (by @phl0)
- Fixed a bug where empty frequency of QSOs led to empty column (by @phl0)
- Fixed a bug that caused QRZ-re-upload on changes to DCL QSL state (by @phl0)
- Made LoTW match code more relaxed as except SAT prop modes are not taken into account while matching (by @phl0)
- Added file filter expression for various file uploads (by @phl0)
- Fixed a security issue with webadif functions (by @phl0)
- Enabled "Add sked partner" if at least one satellite is selected (by @phl0)
- Enhanced satellite list to show whether the sat is supported/known by LoTW (by @phl0)
- Added callsign filter in the gridsquare map (by @phl0)
- Changed code to handle satellites which are not (yet) supported by LoTW properly (by @phl0)
- Changed date format on debug page to respect user configured date format (by @phl0)
- Fixed issues with map display of QSOs which happened in the same grid square (by @phl0)
- Fixed an issue where callbook lookups where executed even if credentials where missing in the config file (by @phl0)
- Aligned QSL colors in last QSOs partial view (by @phl0)
- Wavelog now uses HMAC SHA256 for session key generation. This is much much faster then the previous old solution with bcrypt keys (by @HB9HIL)
- Removed old functions which had no effect since PHP8+ and get rid of some deprecation warnings for PHP8.5 (by @HB9HIL)
- Cleaned up the create_qso() which were cluttered over the years. Also gives a little bit more performance (by @HB9HIL)
- Fixed a bug in the new DXCC Lookup class which caused a faulty DXCC result if callsign is lowercase (by @HB9HIL)
- Small improvements to the import() function to make ADIF import more efficient (by @HB9HIL)
- Refactored the whole caching usage. Wavelog now supports next to the default file caching the way over redis, memcached or apcu. Allows nifty users to speed up their Wavelog instance even more. The debug view now shows some information about caching (by @HB9HIL)
- Implemented a global garbage collector for file based caching. Redis, Memcached and APCu have their own gc, but file based caching needs a regular cleanup. This garbage collector cleans up file based cache on their expired TTL's by a dynamicly generated probability (depends on traffic)
- Fixed the DXcluster caching to work properly with the refactored caching logic (by @HB9HIL)
- Fixed some localizations (by @HB9HIL)
- Fixed a bug in multicallbook configuration where the lookup failed in case of multiple callbooks and the first try were sucessfull (by @HB9HIL)
- Performance-tuning for QSO-Save (by @int2001)
- Performance-tuning for DXCC-Lookup at DXCluster (by @int2001)
- Performance-tuning for Dashboard and Logbook-Overview (by @int2001)
- Fixed a bug, where wrong API-Usage could lead into 500/ServerError (by @int2001)
- Emit logged ADIF to websocket as preparation for future UDP/2333 usage (by @int2001)
- Emit Az/Ele when working SAT via websocket as preparation for future Rotator-Control via WavelogGate (by @int2001)
- Fixed a security issues, where permissions/grants were not properly checked (by @int2001)
- Enhanced private_lookup-API with callbook-lookup (by @int2001)
- Introducing optional/configureable Ratelimit for APIs (by @int2001)
- Improved Clublog-Interface again (by @int2001)
- Implemented additional SSL-Communication from WL to WavelogGate / fallback still Non-SSL (by @int2001)
- Fixed a bug at DXCluster, where precision of spots was lost (by @int2001)
- Made API for "create_station" more relaxed/failsafe (by @int2001)
- Changed click on "DXCluster-Spot" to ensure it's filled into live-logging and not post-logging (by @int2001)
- Fixed an issue where the Map at "Overview" wasn't in sync with the QSO-List (by @int2001)
- Fix several issues with "non-LoTW"-SATs (by @phl0 and @int2001)