Skip to content

build: upgrade date-fns to v4 - #106

Closed
agentHits wants to merge 1 commit into
AgentHits-Devfrom
build/date-fns-v4
Closed

agentHits wants to merge 1 commit into
AgentHits-Devfrom
build/date-fns-v4

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

Мажорное обновление date-fns из волны 2. Сейчас в зависимостях лежат две версии: 3.6.0 у панели и сервера и 4.x у react-day-picker. После обновления остаётся одна.

Что изменилось

  • date-fns: 3.6.0 → 4.4.0 (релиз 2026-05-29), точная версия:
    • apps/dokploy/package.json
    • packages/server/package.json
  • bun.lock: обновлена запись date-fns, удалена вложенная копия react-day-picker/date-fns@4.4.0. react-day-picker (^4.1.0) теперь использует ту же копию 4.4.0. Другие пакеты не менялись.
  • Код не менялся. В 34 файлах используются только format, formatDate, formatDistanceToNow и isPast, все импорты идут из корня пакета, без локалей и подпутей.

Что важно из release notes v4.0:

  • Добавлена поддержка часовых поясов через @date-fns/tz и опцию in. Опция необязательная, у нас не используется, поведение по умолчанию (локальный пояс) прежнее.
  • Пакет стал ESM-first, CommonJS по-прежнему поддерживается.
  • Изменения в типах (DateArg, ContextOptions, аргументы разных типов). Typecheck проходит без правок.

Проверки

  • bun install --frozen-lockfile до и после: ок.
  • bun run typecheck: ок (server, api, schedules, dokploy).
  • bunx vitest run --config __test__/vitest.config.ts на 13 файлах, которые затрагивают уведомления, деплои, бэкапы и disk-usage-format: 13 файлов, 79/79 тестов.
  • bunx biome check на изменённых файлах: ок.
  • bun audit --audit-level=moderate: уязвимостей нет.
  • Сравнение вывода 3.6.0 и 4.4.0. Отдельный скрипт вызывал format с фиксированными датами и всеми шаблонами из кода (yyyy-MM-dd:HH:mm:ss, PPpp, PP, pp, PP pp, PPp, LLL dd, y, yyyy-MM-dd, MMM d, MMM d, yyyy, MMM d, yyyy HH:mm, MMM dd, yyyy, MMM d, HH:mm, d MMM, HH:mm, d MMM, dd.MM.yyyy HH:mm, yyyy-MM-dd HH:mm:ss, HH:mm), а также formatDate(<ISO-строка>, "yyyy-MM-dd hh:mm:ss a"), formatDistanceToNow с addSuffix и без него (от 10 секунд до 400 дней, в прошлое и в будущее) и isPast. Прогон шёл в TZ=UTC и TZ=Europe/Moscow. Вывод совпал построчно: 132 строки из 132, различий нет.
  • Локально не проверялись: next build (его делает CI) и *.real.test.ts (нужен Docker).

Что проверить вручную на dev

  • Даты в списках деплоев и бэкапов и в подсказке с датой (PPpp) при наведении.
  • Относительное время вида «5 minutes ago» на главной, в SSH-ключах, API-ключах и в информации об образах Dokploy.
  • Временные метки в логах деплоя (yyyy-MM-dd:HH:mm:ss) и в журнале запросов.
  • Даты в Telegram/Discord/Slack-уведомлениях о сборке и бэкапе.
  • Календарь (react-day-picker) в фильтре дат журнала запросов и аудита.

🤖 Generated with Claude Code

Что:
- date-fns 3.6.0 -> 4.4.0 (точная версия) в apps/dokploy и packages/server.
- В bun.lock осталась одна копия date-fns@4.4.0: отдельная вложенная копия для react-day-picker (^4.1.0) больше не нужна.
- Код не менялся: все 34 файла импортируют format, formatDate, formatDistanceToNow, isPast из корня пакета, их API в v4 тот же.

Зачем:
- Мажорное обновление волны 2; одна версия date-fns вместо двух в зависимостях.

Риски:
- v4 стал ESM-first (CJS сохранён) и ужесточил типы; typecheck проходит без правок.
- Вывод форматирования проверен скриптом на 3.6.0 и 4.4.0 (все шаблоны из кода, UTC и Europe/Moscow): совпадает построчно.

Проверки:
- bun install --frozen-lockfile до и после: ок.
- bun run typecheck: ок во всех workspace.
- vitest (13 файлов, связанных с форматированием дат, уведомлениями и деплоями): 79/79.
- bunx biome check на изменённых файлах: ок.
- bun audit --audit-level=moderate: уязвимостей нет.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits

Copy link
Copy Markdown
Collaborator Author

Влито в составе #108 одним PR, чтобы вся вторая волна вышла одной версией. Этот PR закрываю без слияния, его коммит есть в #108.

@agentHits agentHits closed this Oct 27, 2026
@agentHits
agentHits deleted the build/date-fns-v4 branch October 27, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant