build: pnpm catalog за споделените версии — typescript, @types/node, wrangler - #341
Merged
Conversation
Test coverage
✅ No workspace dropped below its baseline (tolerance 0.5pp). 📈 Coverage rose by more than 1pp — run |
todorkolev
force-pushed
the
build/dep-catalog
branch
from
September 2, 2026 13:23
55d0523 to
ef78295
Compare
…wrangler Три пакета бяха декларирани в два workspace-а с различни версии: typescript ^5.9.3 (web) срещу ^6.0.3 (root) - мажорно; @types/node ^22 срещу ^25.9.1; wrangler ^4.75.0 срещу ^4.93.1. Никой не го е избирал - двата scaffold комита от 21.05 просто са взели различни числа. Резултатът е два компилатора в едно репо, два @types/node в lockfile-а и wrangler, който в нито един от двата workspace-а не отваря локалния D1. Catalog в pnpm-workspace.yaml държи по една версия, а package.json-ите сочат "catalog:". Така workspace не може да се отклони от другите, без да редактира ЕДИН файл - разминаването става структурно невъзможно, вместо да разчита някой да го забележи. - wrangler ^4.128.0: >=4.123 е това, което отваря локалния D1 (4.93.1 пада на "_cf_ALARM has 3 columns but 2 values"). Досега това се заобикаляше с пин ИЗВЪН репото; вече не е нужен. Всеки 4.12x wrangler носи miniflare 5 alpha като своя зависимост - пинът е на Cloudflare, не наш, и същата линия върти локалния пайплайн от 4.123.0. Проверено: workspace бинарът чете истинската локална база. - @types/node ^24.0.0: съвпада с единствения runtime (build/node-24); 22 и 25 изчезват от lockfile-а, заедно с дублираните им варианти на miniflare, sharp, vite и vitest. - typescript ^6.0.3: root вече беше там; apps/web минава на 6 и typecheck-ът е зелен и в двата workspace-а. Lockfile-ът е изход на pnpm install, не ръчна редакция. Проверено под Node 24: lint, typecheck, целият turbo пакет, node --test scripts/*. По ревюто: @cloudflare/vite-plugin се вдига до ^1.54.3 (peer wrangler ^4.128.0). 1.37 викаше unstable_getWorkerNameFromProject (махнато в 4.103) и старата сигнатура на unstable_printBindings (сменена в 4.128) - deploy и typecheck не ги стигаха, но клавишът "b" във Vite дев сървъра даваше TypeError. Бъмпът маха и дублирания miniflare 4, който старият плъгин носеше. wrangler 4.128 обявява @cloudflare/workers-types ^5 като незадължителен peer; репото е на 4.x - само експортираните декларации на wrangler го внасят, CLI и "wrangler types --check" не са засегнати; workers-types 5 е мажор, отложен за след релийза, и е документиран в catalog-а. Верификация 2 под Node 24: lint, typecheck, wrangler types --check, целият turbo пакет (8/8), vite build на web - зелени.
todorkolev
force-pushed
the
build/dep-catalog
branch
from
September 2, 2026 15:55
ef78295 to
1d9c571
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Втори от трите PR-а за зависимостите (след #339, преди #340).
Проблемът
Три пакета бяха декларирани в два workspace-а с различни версии — и никой не го е избирал; двата scaffold комита от 21.05 просто са взели различни числа:
apps/webtypescript@types/nodewranglerРезултатът: два компилатора в едно репо, два
@types/nodeв lockfile-а (и дублирани варианти на miniflare/sharp/vite/vitest покрай тях), и wrangler, който в нито един от двата workspace-а не отваря локалния D1.Какво прави
catalog:вpnpm-workspace.yamlдържи по една версия; дватаpackage.jsonсочат"catalog:". Workspace вече не може да се отклони от другите, без да редактира един файл — разминаването става структурно невъзможно, вместо да разчита някой да го забележи._cf_ALARM has 3 columns but 2 values). Досега това се заобикаляше с пин извън репото; вече не е нужен. Проверено: workspace бинарът чете истинската локална база. Всеки 4.12x wrangler носи miniflare 5 alpha като своя зависимост — пинът е на Cloudflare, не наш; същата линия върти локалния пайплайн от 4.123.0.@cloudflare/vite-pluginоще дърпа miniflare 4, тъй че двата съжителстват до неговия bump (1.37 → 1.54, отделна промяна).apps/webминава на 6 и typecheck-ът е зелен и в двата.pnpm-lock.yamlе изход наpnpm install— не е редактиран на ръка.Проверка под Node v24.20.0
lint, typecheck (двата workspace-а), целият turbo пакет (web 521, db 490 …),
node --test scripts/*.test.mjs— всичко зелено. Workspace wrangler 4.128.0 отваря локалния D1 (published=279).🤖 Generated with Claude Code
https://claude.ai/code/session_013pBk7JaPgpsgELYGZgnkwt