From 99cd9c760e9a3623cc7e2efacead9f4cce84e43c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ha=C5=82as?= Date: Wed, 15 Apr 2026 08:27:34 +0200 Subject: [PATCH 1/2] chore: update CHANGELOG for milestone #2 --- CHANGELOG.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 057893b..bf5083b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,11 +17,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added `ServerAction` enum for type-safe command actions ([#135](https://github.com/crazy-goat/workerman-bundle/issues/135)) + - Replaces string-based action constants with strongly-typed enum + - Cases: START, STOP, RESTART, RELOAD, STATUS + - Used by `WorkermanCommand` and `ServerManager` for improved type safety + - Added validation in `ConfigLoader::warmUp()` to ensure all config sections are set before caching ([#35](https://github.com/crazy-goat/workerman-bundle/issues/35)) - New `ConfigSection` enum with cases: WORKERMAN, PROCESS, SCHEDULER - Throws `LogicException` with descriptive message when any section is missing - Prevents incomplete configuration from being cached +- Added pre-push git hook to run `composer lint` before pushing ([#137](https://github.com/crazy-goat/workerman-bundle/issues/137)) + - Hook runs static analysis and code style checks before push + - Prevents pushing code that doesn't pass linting + +### Fixed + +- Fixed `TriggerFactory` fragile cron expression detection heuristic ([#34](https://github.com/crazy-goat/workerman-bundle/issues/34), [#138](https://github.com/crazy-goat/workerman-bundle/issues/138)) + - Uses `CronExpression::isValidExpression()` for robust detection instead of exception-based heuristic + - Added `class_exists` check for graceful handling when package is not installed + +- Fixed `SupervisorWorker` — removed `sleep(1)` hack and added proper logging ([#36](https://github.com/crazy-goat/workerman-bundle/issues/36), [#143](https://github.com/crazy-goat/workerman-bundle/issues/143)) + - Removed arbitrary 1-second sleep that was causing race conditions + - Added proper logging for state transitions and errors + - Improved reliability of worker supervision + +- Fixed `WorkermanCompilerPass` — replaced anonymous class with proper named class ([#37](https://github.com/crazy-goat/workerman-bundle/issues/37), [#144](https://github.com/crazy-goat/workerman-bundle/issues/144)) + - Extracted anonymous class from `config/compilerpass.php` to `src/DependencyInjection/WorkermanCompilerPass.php` + - Added comprehensive unit tests for compiler pass functionality + ### Changed - **Breaking**: Config cache format changed from numeric indices to string keys ([#35](https://github.com/crazy-goat/workerman-bundle/issues/35)) From 4cb975016c6ffc50a7e0372cbd68e0630516b6b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ha=C5=82as?= Date: Wed, 15 Apr 2026 08:29:05 +0200 Subject: [PATCH 2/2] chore: prepare release v0.15.0 --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf5083b..a686b8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.15.0] - 2026-04-15 ### Security @@ -54,6 +54,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Uses `ConfigSection` enum values as keys for clarity and type safety - **Migration**: Clear cache after upgrade: `rm -rf var/cache/*` +## [Unreleased] + ## [0.14.0] - 2026-04-14 ### Deprecated