Merge remote-tracking branch 'origin/main' into fix/existing-test-failures-20260812

This commit is contained in:
2026-08-13 00:52:28 +00:00
82 changed files with 2013 additions and 849 deletions
+29 -16
View File
@@ -2,36 +2,49 @@
## 버전
Workspace 전체는 TypeScript `6.0.2`를 정확한 버전으로 사용합니다.
`pnpm-workspace.yaml` override가 transitive resolution에도 같은 버전을
적용합니다.
Workspace의 Vite, Vue/Volar, typescript-eslint와 compiler API 소비자는
TypeScript `6.0.3`을 정확한 버전으로 사용합니다. `pnpm-workspace.yaml`
override가 transitive resolution에도 같은 버전을 적용합니다.
CLI project build/typecheck는 TypeScript `7.0.2` native compiler를 사용합니다.
루트의 `@typescript/native``npm:typescript@7.0.2` alias이며, `tsc7` script가
그 package의 `tsc` binary를 명시적으로 실행합니다. 각 package의 `tsc -b`
`tsc -p`는 PATH의 우연한 binary 선택에 의존하지 않고 `pnpm -w tsc7 ...`
통해 이 script를 호출합니다. Vue SFC 검사는 계속 `vue-tsc`와 TypeScript 6.0.3
API를 사용합니다.
TypeScript 7의 공식 side-by-side 안내에 있는 `@typescript/typescript6` package는
현재 6.0.2까지만 배포되어 있으므로, 6.0.3 API는 일반 `typescript` package로
설치합니다. 두 package가 모두 `tsc` 이름을 제공할 수 있는 PATH 충돌을 피하기
위해 project script는 반드시 명시적인 `tsc7` entry point를 사용합니다.
`pnpm check:typescript-toolchain`은 root와 두 frontend의 API resolution 및 native
CLI version을 함께 검사합니다.
적용 범위는 다음과 같습니다.
- 루트 개발 도구
- `app/*`
- `packages/*`
- `tools/*`
- 루트와 frontend의 Vite/Vue/compiler API: TypeScript 6.0.3
- `app/*`, `packages/*`, `tools/*`의 project build/typecheck: TypeScript 7.0.2
Package별 다른 TypeScript 버전, caret range, alias와 fallback compiler를
추가하지 않습니다. `pnpm-lock.yaml`에는 승인된 한 버전만 resolve되어야
합니다. Ref PHP 저장소 `../ref/sam`의 도구 체인은 이 workspace 정책에
Package별 다른 TypeScript 버전이나 caret range를 추가하지 않습니다. 승인된
두 compiler의 역할은 `typescript` 6.0.3 API와 `@typescript/native` 7.0.2 CLI로
고정합니다. Ref PHP 저장소 `../ref/sam`의 도구 체인은 이 workspace 정책에
포함되지 않습니다.
공유 `tsconfig.base.json` TypeScript 6의 `baseUrl` deprecation 경고에
대해 `ignoreDeprecations: "6.0"`을 사용합니다. Package별 suppression을
추가하지 않습니다.
공유 tsconfig와 package tsconfig는 TypeScript 7에서 제거된 `baseUrl`
사용하지 않습니다. `paths` target은 각 설정 파일 기준의 명시적 상대경로로
작성하여 TypeScript 6, TypeScript 7과 Vite의 경로 해석을 일치시킵니다.
## 버전 변경
Compiler major version은 workspace 전체를 한 변경으로 갱신합니다. 다음
항목을 모두 확인해 주세요.
1. 저장소 script가 사용하는 compiler API
1. 저장소 script가 사용하는 TypeScript 7 CLI와 TypeScript 6 compiler API
2. `typescript-eslint`, `vue-tsc`, tsdown, Vite와 Prisma 도구 지원
3. 모든 manifest와 lockfile의 단일 version resolution
3. 모든 manifest와 lockfile에서 승인된 두 역할의 exact version resolution
4. `CI=1 pnpm typecheck`, `pnpm lint`, `pnpm build`, `pnpm test`
5. `pnpm check:legacy:general`, `pnpm check:legacy:nation`
6. 별도 compiler 설치나 alias 없이 실행되는 비교 도구
6. `tsc7 --version`, `vue-tsc --version``import('typescript').version`
실제 binary/API resolution
검증되지 않은 compiler major version을 package 한 곳에만 적용하지 않습니다.