Skip to content

게시된 npm 설치 검증이 실패하던 두 가지를 고쳤다 - #95

Merged
SonAIengine merged 1 commit into
mainfrom
fix/npm-release-gate
Oct 25, 2026
Merged

SonAIengine merged 1 commit into
mainfrom
fix/npm-release-gate

Conversation

@SonAIengine

Copy link
Copy Markdown
Contributor

무엇이 문제였나

v0.1.0-rc.4는 npm 패키지 6개가 모두 정상 게시됐는데도 release run이 빨간색이었다. 두 가지가 겹쳤다.

1. Verify published npm install의 경로 가정이 틀렸다. 플랫폼 패키지를 $global_root/@xgen-ai/<pkg>에서만 찾았는데, npm은 전역 설치에서 launcher의 optional dependency를 전역 루트로 hoist 하거나 launcher 밑(@xgen-ai/cli/node_modules/@xgen-ai/<pkg>)에 중첩하거나 둘 다 할 수 있다. rc.4에서는 중첩됐고 다섯 플랫폼이 전부 같은 줄에서 떨어졌다.

이 job은 rc.3까지 publish 실패로 skip 돼서 한 번도 실행된 적이 없다. 그래서 지금 처음 드러났다.

2. 게시 확인 루프가 짧았다. 12회 × 5초 = 60초 안에 registry가 integrity·dist-tag·provenance를 함께 서빙하지 못했다. 재실행마다 패키지가 하나씩만 올라가고 나머지는 timeout 돼서, rc.4는 수동 재실행이 여섯 번 필요했다.

무엇을 바꿨나

  • Unix는 platform_package_root(), Windows는 Get-PlatformPackageRoot로 두 배치를 모두 받아들인다. 설치가 맞는지는 뒤따르는 version/licenses 검사가 판단한다. 재설치·삭제 후 단언도 같은 헬퍼를 쓴다.
  • publish.mjs의 확인 루프를 12회에서 60회(5분)로 올렸다.

검증

  • rc.4가 실제로 떨어진 그 단언을, 같은 방식으로 전역 설치한 트리에 대해 실행해 통과를 확인했다(중첩 배치에서 찾아내고, npm uninstall 후에는 없음 단언도 통과).
  • .github/workflows/release.yml YAML 파싱, node --check npm/scripts/publish.mjs, npm test 14/14 통과.

게시된 rc.4에는 영향이 없다. 다음 릴리스부터 적용된다.

🤖 Generated with Claude Code

Verify published npm install은 플랫폼 패키지를 전역 루트에서만 찾았다. npm은
전역 설치에서 launcher의 optional dependency를 전역 루트로 올리거나 launcher
밑에 중첩하거나 둘 다 할 수 있고, v0.1.0-rc.4에서는 중첩됐다. 게시된 패키지는
정상이었는데도 다섯 플랫폼이 전부 같은 줄에서 떨어졌다. 이 job은 rc.3까지
publish 실패로 skip돼서 한 번도 실행된 적이 없어 드러나지 않았다. 양쪽 배치를
모두 받아들이고, 설치가 맞는지는 뒤따르는 version/licenses 검사가 판단한다.

publish의 게시 확인 루프는 12회(60초)였다. registry가 integrity와 dist-tag와
provenance를 함께 서빙하기까지 그보다 오래 걸려서, 재실행마다 패키지가 하나씩만
올라가고 나머지는 timeout 됐다. rc.4는 그래서 수동 재실행이 여섯 번 필요했다.
60회(5분)로 올린다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@SonAIengine
SonAIengine merged commit 9aee655 into main Oct 25, 2026
3 checks passed
@SonAIengine
SonAIengine deleted the fix/npm-release-gate branch October 25, 2026 09:59
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