Skip to content

chore: pnpm 11.24.0 이관 (yarn 4 → pnpm) — #25 위 스택 - #26

Merged
pbc1017 merged 1 commit into
mainfrom
chore/pnpm-11
Oct 15, 2026
Merged

pbc1017 merged 1 commit into
mainfrom
chore/pnpm-11

Conversation

@wes5510

@wes5510 wes5510 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

yarn 4(Berry) → pnpm 11.24.0 이관입니다. Node 24 상향 PR #25 위에 쌓은 스택 PR이라 base가 그 브랜치(chore/node-24)입니다. 머지 순서는 #25 먼저입니다 — 그 PR이 머지되면 이 PR의 base를 main으로 바꾸고(이 레포는 머지 뒤 브랜치 자동 삭제가 꺼져 있어 base가 저절로 안 바뀝니다) 필요하면 rebase·회귀 재확인을 합니다.

검증

커밋 78ad03d 기준, as-is는 Node PR head 3c54a82(yarn 4.2.2, Node 24)입니다.

항목 결과 근거
회귀 대조 일치 Linux 컨테이너에서 as-is yarn install --immutable / to-be pnpm install --frozen-lockfile + build → 직접 의존성 resolved 맵 0줄 차이 · 실행된 install script 1개 → 1개(esbuild) · 빌드 산출물 3개 내용 해시 동일
전이 포함 이름@버전 집합 76개 빠짐 · 새로 생긴 것 0 as-is 391 · to-be 315 — 빠진 76개는 아래 토글(71개는 Berry가 macOS 전용 fsevents에 붙이는 node-gyp 묶음, 4개는 styled-components의 선택 peer css-to-react-native 묶음, 1개는 타입 전용 csstype 합침)
CI success 이 레포 PR 트리거엔 브랜치 필터가 없어 스택 PR에도 test 잡이 붙습니다 — 전 스텝 success, 로그 version: 11.24.0(pnpm/action-setup) · node: v24.21.0 · make init의 Done in 3.7s using pnpm v11.24.0

봐주셔야 할 것

  • install script 허용목록 — wam/pnpm-workspace.yaml의 allowBuilds에 esbuild@0.19.12 하나만 true입니다. 지금 yarn이 Linux에서 실제로 실행하던 집합과 같습니다. 버전까지 박아서, lockfile이 갱신돼 새 버전이 오면 install이 ERR_PNPM_IGNORED_BUILDS로 멈추고 다시 승인하게 됩니다(공급망 방어가 목적이라 의도된 동작). strictDepBuilds: true도 켰습니다.
  • css-to-react-native가 더는 설치되지 않습니다 — styled-components 6.4.4가 이 패키지를 의존성과 선택 peer 양쪽에 적어 두었는데, pnpm은 peer로 보고 깔지 않습니다. 웹 빌드는 이 패키지를 쓰지 않아 번들이 바이트 단위로 같습니다(위 회귀 대조). React Native용 styled-components/native를 쓸 계획이면 직접 의존성으로 넣어야 합니다.
  • 개발 명령이 바뀝니다 — corepack yarn … → corepack pnpm …(install --immutable → install --frozen-lockfile). README 6개(루트·wam의 en/ko/ja)와 Makefile을 같이 고쳤습니다.

이관을 어떤 순서로 했나 — import 출력

트랙 표준 순서대로 node:24 컨테이너에서 돌렸습니다: packageManager: pnpm@11.22.0 기입(원래 있던 yarn@4.2.2를 지우고) → pnpm-workspace.yaml 신설 → pnpm import(Berry yarn.lock → pnpm-lock, 패키지 315개, exit 0) → pnpm@11.24.0 상향 + engines.pnpm >=11.22.0 + allowBuilds·strictDepBuilds → yarn.lock·.yarnrc.yml·.yarn/ 삭제 → pnpm install --frozen-lockfile exit 0, ERR_PNPM_IGNORED_BUILDS 0건.

CI는 pnpm/action-setup@v6.1.0(version: 11.24.0)을 setup-node 앞에 두고 캐시를 cache: pnpm·wam/pnpm-lock.yaml로 바꿨습니다. Makefile은 corepack pnpm을 부르므로 버전은 packageManager가 정합니다.

전이 의존성 76개가 빠진 이유 — 의존 그래프로 센 결과

yarn.lock의 의존 그래프를 따라가 빠진 76개가 어디서 왔는지 셌습니다.

  • 71개 — node-gyp 묶음: Berry는 install script가 있을 법한 패키지(여기선 macOS 전용 fsevents@2.3.3)에 node-gyp: npm:latest를 암묵 의존으로 붙여 lockfile에 남깁니다. pnpm은 이런 의존을 만들지 않습니다. fsevents는 Linux에서 원래 안 깔리고, 2.x는 미리 빌드된 바이너리라 macOS에서도 node-gyp를 부르지 않습니다.
  • 4개 — css-to-react-native 묶음(camelize·css-color-keywords·postcss-value-parser 포함): 위 "봐주셔야 할 것" 둘째 항목.
  • 1개 — csstype@3.1.3: @types/react 쪽에서 쓰던 것이 이미 있던 csstype@3.2.3 하나로 합쳐졌습니다. 타입 정의라 런타임과 무관하고, to-be 빌드의 tsc가 통과했습니다.

새로 생긴 이름@버전은 0개입니다.

회귀 대조를 어떻게 쟀나

같은 소스를 as-is(yarn 4.2.2)·to-be(pnpm 11.24.0)로 각각 새 컨테이너·새 store에서 설치·빌드하고 스냅샷 네 가지를 대조했습니다: 직접 선언 의존성의 resolved 버전 맵 · 직접 선언 목록 · 실제로 실행된 install script 집합 · 빌드 산출물(wam/dist/) 파일 내용 해시. 네 가지 모두 동일입니다.

안 건드린 것
  • .gitignore의 yarn 로그·캐시 무시 줄 3개 — 무시 규칙이라 남아도 해가 없습니다
  • 의존성 버전 — 이관만 했고 올리지 않았습니다

Summary by CodeRabbit

  • 개발 환경
    • WAM의 패키지 관리 도구가 Yarn 4에서 Corepack을 통한 pnpm 11로 변경되었습니다.
    • 설치, 개발 서버 실행, 빌드 및 타입 검사 안내와 CI 설정이 pnpm에 맞게 업데이트되었습니다.
    • 필요한 pnpm 버전과 의존성 빌드 설정이 추가되었습니다.

@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 0ace1d39-8b20-41f6-a9c7-5a1f00551d42
📥 Commits

Reviewing files that changed from the base of the PR and between 3c54a82 and 78ad03d.

⛔ Files ignored due to path filters (3)
  • wam/.yarn/releases/yarn-4.2.2.cjs is excluded by !**/.yarn/**
  • wam/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • wam/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (11)
  • .github/workflows/ci.yml
  • Makefile
  • README.ja.md
  • README.ko.md
  • README.md
  • wam/.yarnrc.yml
  • wam/README.ja.md
  • wam/README.ko.md
  • wam/README.md
  • wam/package.json
  • wam/pnpm-workspace.yaml
💤 Files with no reviewable changes (1)
  • wam/.yarnrc.yml

Included review availability: This review used your included allowance. 2 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.

Walkthrough

WAM의 패키지 관리 도구를 Yarn에서 pnpm 11로 변경했습니다. CI, Makefile 명령, 개발 안내 문서도 pnpm을 사용하도록 갱신했습니다.

Changes

WAM의 pnpm 전환

Layer / File(s) Summary
pnpm 설정 및 버전 계약
wam/package.json, wam/pnpm-workspace.yaml, wam/.yarnrc.yml
pnpm 버전을 지정하고 최소 버전 요구사항을 추가했습니다. 의존성 빌드 설정을 추가하고 기존 Yarn 설정 파일을 삭제했습니다.
CI·개발 명령 및 안내 갱신
.github/workflows/ci.yml, Makefile, README*.md, wam/README*.md
CI의 pnpm 설정과 캐시 경로를 변경했습니다. Makefile 및 안내 문서의 설치, 빌드, 검사 명령을 pnpm 기준으로 바꿨습니다.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: pbc1017

Merge Risk: ⚪ Minimal · up to 78ad0

WAM 설치와 CI가 pnpm으로 전환되며, 제공된 근거에서는 병합을 막을 구체적 동작 회귀가 확인되지 않았습니다. CI 토큰의 실제 기본 권한은 확인되지 않았으므로 쓰기 권한이 없다고 단정할 수는 없습니다.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed 제목은 Yarn 4에서 pnpm 11.24.0으로 패키지 관리자를 변경하는 PR의 주요 내용을 명확하게 설명합니다. PR #25와의 스택 관계도 포함합니다.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

토끼가 pnpm 길을 따라가네
잠금 파일을 꼭 끌어안고
빌드 명령도 새 길로 바꾸네
캐시가 조용히 발맞추고
README에 새 안내가 반짝이네

Comment @coderabbitai help to get the list of available commands.

@wes5510

wes5510 commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Reapply the reviewed pnpm migration on the merged Node24 prerequisite with a GitHub-verified signature. Source tree is unchanged.

Constraint: Preserve original pnpm migration byte for byte
Confidence: high
Scope-risk: narrow
Co-authored-by: wes5510 <wes5510@icloud.com>
@pbc1017
pbc1017 changed the base branch from chore/node-24 to main October 15, 2026 16:34

@pbc1017 pbc1017 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

갱신된 커밋의 소스와 설치·CI·빌드 경로를 재검토했습니다. 현재 변경에서 추가 수정 사항은 확인되지 않았고, 최신 CI와 커밋 서명 검증도 통과했습니다.

@pbc1017
pbc1017 merged commit b3811c8 into main Oct 15, 2026
2 checks passed
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.

2 participants