Skip to content

build: upgrade bl to v7 - #92

Closed
agentHits wants to merge 2 commits into
AgentHits-Devfrom
build/bl-v7
Closed

agentHits wants to merge 2 commits into
AgentHits-Devfrom
build/bl-v7

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

bl 7 перешёл на ESM и встроенные node:stream/node:buffer и больше не тянет ни одной runtime-зависимости. Пакетов в дереве и в образе становится меньше, а поведение, на котором держится сбор вывода команд деплоя, остаётся прежним.

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

  • bl 6.1.6 → 7.0.13 (выпущен 2026-10-19), точная версия в apps/dokploy/package.json и packages/server/package.json.
  • bun.lock: из дерева ушли readable-stream@4, @types/readable-stream, abort-controller, event-target-shim, events, process; readable-stream@3.6.2 поднялся на верхний уровень вместо отдельных копий у docker-modem, tar-stream и are-we-there-yet. Другие пакеты не менялись.
  • Код packages/server/src/utils/process/spawnAsync.ts менять не понадобилось: default-экспорт bl 7 — по-прежнему BufferListStream с append, toString и length. Типы теперь идут в самом пакете, отдельного @types/bl в проекте нет.
  • Новый тест apps/dokploy/__test__/process/spawn-async.test.ts запускает настоящие процессы: проверяет сбор stdout из нескольких частей, колбэк onData, передачу input в stdin и ошибку с текстом stderr, кодом выхода, stdout и stderr. Существующие тесты мокали spawnAsync целиком.

Важное из release notes bl 7.0.0:

  • require() больше не поддерживается, только ESM import. Оба пакета у нас уже "type": "module", а esbuild собирает сервер с packages: "external", поэтому bl загружается обычным import.
  • BufferList и BufferListStream нужно создавать через new: у нас уже так.
  • Нужен Node.js >= 20.
  • Версии 7.0.1–7.0.13 — исправления упаковки типов и обновления CI самой библиотеки.

Проверки

  • bun install --frozen-lockfile — успешно.
  • bun run typecheck — все четыре workspace без ошибок.
  • bunx vitest run --config __test__/vitest.config.ts __test__/process/ — 2 файла, 4 теста, все прошли.
  • bun run server:build — успешно, в dist остаётся import BufferList from "bl"; затем bun run server:script, у packages/server/package.json нет лишних изменений.
  • bunx biome check по изменённым файлам — чисто.
  • bun audit --audit-level=moderate — уязвимостей нет.
  • Локально не запускались bun run build для apps/dokploy и полный bun run test: их проверяет CI этого PR.

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

  • Задеплоить любое приложение со сборкой (например, Nixpacks или Dockerfile) и убедиться, что лог деплоя идёт построчно в реальном времени и заканчивается как обычно.
  • Запустить заведомо падающий деплой (например, с ошибкой в Dockerfile) и проверить, что текст ошибки из stderr виден в логе и в уведомлении.

🤖 Generated with Claude Code

agentHits and others added 2 commits October 27, 2026 11:29
Что:
- bl 6.1.6 → 7.0.13 (точная версия) в apps/dokploy/package.json и packages/server/package.json.
- bun.lock: у bl 7 нет runtime-зависимостей, из дерева ушли readable-stream 4, @types/readable-stream, abort-controller, event-target-shim, events и process; readable-stream 3.6.2 поднялся на верхний уровень вместо копий у docker-modem, tar-stream и are-we-there-yet.
- apps/dokploy/__test__/process/spawn-async.test.ts: новый тест spawnAsync на настоящих процессах (сбор stdout по частям, onData, input в stdin, ошибка с stderr, кодом и обоими потоками).
- Код spawnAsync не менялся: default-экспорт bl 7 по-прежнему BufferListStream с append/toString/length.

Зачем:
- bl 7 перешёл на ESM и node:stream/node:buffer без зависимостей: меньше пакетов в дереве и в образе.

Риски:
- bl 7 только ESM и требует Node >= 20. Оба пакета уже "type": "module", esbuild собирает сервер с packages: "external", поэтому bl грузится через import.
- spawnAsync собирает вывод почти всех команд деплоя и сборки; поломка проявилась бы в логах деплоя и текстах ошибок.

Проверки:
- bun run typecheck — все четыре workspace без ошибок.
- bunx vitest run __test__/process/ — 4 из 4.
- bun run server:build — успешно, затем server:script, packages/server/package.json без лишних изменений.
- 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

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

@agentHits agentHits closed this Oct 27, 2026
@agentHits
agentHits deleted the build/bl-v7 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