Releases: cloudcastle-apps/clock
Releases · cloudcastle-apps/clock
Release list
v1.0.1 — зелёная матрица PHP 8.1–8.5
[1.0.1] — 2026-07-14
Исправлено
- CI-матрица PHP 8.1–8.5: детерминированная установка зависимостей —
composer.lock
теперь в репозитории (workflow строит кэш от него; без lock на PHP 8.1 приезжали
пакеты для новых версий и валили phpmd синтаксической ошибкой в vendor). - Мультиверсионная обработка провала
modify(): до PHP 8.3 — каналfalse,
с 8.3 —DateMalformedStringException; оба канала обрабатываются и покрыты
тестами на всей матрице версий (фикстуры каналов + symfony/polyfill-php83 в dev).
Качество релиза: матрица PHP 8.1–8.5 зелёная; 201 тест; покрытие 100% строк каждого файла; Infection 202/202 убитых мутантов (0 выживших, 0 ошибок, 0 таймаутов, 0 непокрытых).
v1.0.0 — первый стабильный релиз
[1.0.0] — 2026-07-14
Добавлено
- Контракты поверх PSR-20:
ClockInterface(timestamp(),microtime(),timezone(),
withTimezone(),freeze()),SleepableClockInterface(sleep(),sleepUntil()),
AdjustableClockInterface(setTo(),modify(),advance(),rewind()). - Реализации часов:
SystemClock(кэш экземпляров по зоне,sleep()с досыпанием после
прерывания сигналом),FrozenClock,MockClock(виртуальный сон),MonotonicClock
(целочисленное наносекундное состояние),CallbackClock. - Декораторы:
OffsetClock(смещение),ScaledClock(масштаб времени),
TruncatingClock(усечение до секунды/минуты/часа/суток с учётом таймзоны). - Интеграция:
ClockHolder(глобальный слот), фасадClock(включаяnow('+1 hour')
иinZone()),ClockAwareTrait,Stopwatch(круги, наносекундная точность). DatePoint— момент от часов приложения с типизированными исключениями вместоfalse.PsrClockAdapter— сторонние PSR-20-часы получают расширенный контракт пакета
и работают со всеми декораторами.- Валидация ввода на границе: мусорные строки, null-байты и отрицательные длительности
отклоняютсяInvalidClockValueException; управляющие символы в сообщениях экранируются. - Качество: покрытие 100 % строк каждого файла, мутационное тестирование без выживших
и непокрытых мутантов, статический анализ (PHPStan max, Psalm 1, PHPMD, Deptrac, Rector). - Документация: wiki со страницей, схемой и жизненным циклом на каждую возможность;
автогенерация сравнительных таблиц (фичи, скорость, память) с колонкой победителя;
guide phpDocumentor зеркалируется из wiki. - Бенчмарки против symfony/clock, lcobucci/clock, beste/clock, nesbot/carbon,
ergebnis/clock: изолированный процесс на каждый замер, медиана из 7 прогонов.
Качество релиза: 210 тестов в пяти наборах; покрытие 100% строк каждого файла; Infection 200/200 убитых мутантов (0 выживших, 0 таймаутов, 0 непокрытых); PHPStan max, Psalm level 1, PHPMD, Deptrac, Rector — без замечаний.
Производительность: паритет лидеров на базовых PSR-20-операциях, +33…+248% к лучшему аналогу на задачах со специализированным API, 0.0 КБ добавленной пиковой памяти.