Skip to content

build: upgrade boxen to v9 - #94

Closed
agentHits wants to merge 1 commit into
AgentHits-Devfrom
build/boxen-v9
Closed

agentHits wants to merge 1 commit into
AgentHits-Devfrom
build/boxen-v9

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

boxen рисует рамку-баннер в начале лога деплоя Docker Compose. Ветка 7.x больше не развивается; переход на 9.x закрывает два мажора и подтягивает исправления переноса строк и подсчёта ширины, видимого результата при этом нет.

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

  • boxen ^7.1.1 -> ^9.0.0 (9.0.0 вышла 2026-09-21) в apps/dokploy/package.json и packages/server/package.json.
  • bun.lock: только дерево boxen (chalk 6, cli-boxes 4, string-width 8, wrap-ansi 10, widest-line 6, slice-ansi 9, type-fest 5); ansi-align и camelcase@7 больше не нужны. Остальные строки lock - перестановка уже имеющихся версий, новых версий посторонних пакетов нет.
  • Код не менялся. packages/server/src/utils/builders/compose.ts вызывает boxen() только с padding, width: 80, borderStyle: "double", эти опции в 8 и 9 не менялись.

Из release notes:

  • 8.0.0: требуется Node.js 18, обновлены зависимости.
  • 8.0.1: откат cli-boxes из-за совместимости с Node.
  • 9.0.0: требуется Node.js 22 (у нас Node 24); новые опции maxWidth, footer, titleColor, borderBackgroundColor; много багфиксов. Модуль по-прежнему ESM с default-экспортом.

Баннер до и после: на одном и том же входе (длинная команда с переносом, эмодзи) вывод v7 и v9 совпал побайтово, с цветом и без:

╔══════════════════════════════════════════════════════════════════════════════╗
║                                                                              ║
║ App Name: my-app-abc123                                                      ║
║ Build Compose 🐳                                                             ║
║ Detected: 2 mounts 📂                                                        ║
║ Command: docker compose -p my-app-abc123 -f ./docker-compose.yml up -d       ║
║ --build --remove-orphans and some extra long text here to wrap               ║
║ Source Type: docker github ✅                                                ║
║ Compose Type: docker-compose ✅                                              ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝

Проверки

  • bun install --frozen-lockfile - ок.
  • bun run typecheck - @dokploy/server, @dokploy/api, @dokploy/schedules, dokploy без ошибок.
  • bunx vitest run --config __test__/vitest.config.ts __test__/deployment/compose-exact-deploy.test.ts __test__/compose/build-compose-command.test.ts __test__/env/compose-env-upsert.test.ts __test__/compose/env-file-preserved.test.ts - 4 файла, 50 тестов прошли.
  • bunx biome check apps/dokploy/package.json packages/server/package.json - чисто.
  • bun audit --audit-level=moderate - уязвимостей нет.
  • Локально не запускались: next build, bun run server:build и полный bun run test - их прогонит CI.

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

  1. Задеплоить любой сервис Docker Compose (docker-compose или stack).
  2. Открыть лог деплоя и проверить баннер наверху: двойная рамка ширины 80, строки App Name / Build Compose / Detected / Command / Source Type / Compose Type, длинная команда переносится внутри рамки, правая граница не съезжает.
  3. Убедиться, что деплой дошёл до конца без ошибок.

🤖 Generated with Claude Code

Что:
- boxen ^7.1.1 -> ^9.0.0 в apps/dokploy/package.json и packages/server/package.json (одна версия в обоих воркспейсах).
- bun.lock: обновлено только дерево boxen (chalk 6, cli-boxes 4, string-width 8, wrap-ansi 10, widest-line 6, slice-ansi 9, type-fest 5), ушли ansi-align и camelcase@7; остальное в lock - перестановка уже имеющихся версий.
- Код не менялся: вызов boxen() в packages/server/src/utils/builders/compose.ts использует только padding, width и borderStyle, их API в 8 и 9 не менялся.

Зачем:
- Выйти с ветки 7.x, которая больше не получает исправлений; 9.x - актуальная мажорная версия с багфиксами переноса строк и ширины.

Риски:
- boxen 9 требует Node.js >= 22; у нас Node 24, проблем нет.
- Баннер в начале лога деплоя Docker Compose мог бы поменять вид; локально вывод v7 и v9 на одинаковом входе совпал побайтово (рамка double, ширина 80, перенос длинной команды, эмодзи).

Проверки:
- bun run typecheck - все 4 воркспейса без ошибок.
- bunx vitest run (compose-exact-deploy, build-compose-command, compose-env-upsert, env-file-preserved) - 4 файла, 50 тестов прошли.
- bunx biome check на изменённых package.json - чисто.
- bun audit --audit-level=moderate - уязвимостей нет.
- next build и полный набор тестов локально не запускались, их прогонит CI.

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

Copy link
Copy Markdown
Collaborator Author

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

@agentHits agentHits closed this Oct 27, 2026
@agentHits
agentHits deleted the build/boxen-v9 branch October 27, 2026 16:12
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