tannermidd/pi-pocket의 npm 발행 워크플로가 수정됐다. 2026년 10월 30일 22:22 UTC에 병합된 커밋 db1e531은 PR #229(브랜치 fix/publish-npm-11)를 합치면서 npm 클라이언트를 11로 고정하고, 패키지에 npm-shrinkwrap.json이 없으면 발행 전에 멈추도록 바꿨다. 수정이 들어간 파일은 .github/workflows/publish.yml 하나이며, 변경량은 13줄 추가와 1줄 삭제다.
npm-shrinkwrap.json은 설치될 때 의존성 버전을 그대로 고정하는 파일이다. 워크플로에 새로 붙은 주석은 npm 12가 이 파일을 패키지에서 빠뜨린다고 적고 있다. 최신 npm을 그대로 쓰면 잠금 파일 없이 배포되어, 테스트된 의존성 버전이 설치자에게 전달되지 않는다. 수정은 두 갈래다. 먼저 npm 설치를 npm install -g npm@latest에서 npm install -g npm@11로 바꿔, 주석이 말하는 trusted publishing을 지원하는 구간을 유지했다. 이어 npm pack --dry-run --json --ignore-scripts의 출력에서 npm-shrinkwrap.json이 들어 있는지 확인하고, 없으면 설치에 검증된 의존성 버전이 전달되지 않는다는 메시지를 남긴 뒤 종료 코드 1로 중단한다. 발행 전에 조용히 잘못 배포되는 것을 막는 장치다.
다만 확인된 변경은 발행 파이프라인 한 곳뿐이다. 앱 코드나 패키지 내용을 고친 부분은 없고, 검사도 잠금 파일이 목록에 있는지만 살피므로 그 안의 의존성 버전이 검증된 버전과 일치하는지까지는 보지 않는다. 워크플로는 여전히 package-lock.json을 npm-shrinkwrap.json으로 복사한 뒤 검사하므로, 이 검사는 그 사본이 npm pack을 통과했는지 확인하는 데 가깝다. npm 12의 배포 일정이나 이 커밋이 실제 배포에 반영됐는지는 주어진 기록에 없다. 새 npm이 잠금 파일을 다루는 방식을 고쳐야 발행을 계속할 수 있는 상황에서, 잠금 파일 유실을 막는 수단으로 넣은 방어적 변경에 가깝다.