Skip to content

fix(release): validate managed changepack paths - #787

Merged
owjs3901 merged 1 commit into
mainfrom
fix/changepack-paths
Oct 18, 2026
Merged

owjs3901 merged 1 commit into
mainfrom
fix/changepack-paths

Conversation

@owjs3901

@owjs3901 owjs3901 commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Refs #683 (릴리스 메타데이터 회귀 방지)

최신 main의 a26bb57928a04091e229d0972048eee39f09eb53에서 분기한 독립 PR입니다. #786은 수정하지 않았으며, 이 PR은 게시되는 패키지나 워크플로를 변경하지 않습니다.

요약

  • .changepacks/config.json은 packages/*/*와 bindings/*/package.json만 관리하지만, 네 로그에 비관리 private 앱 apps/landing/package.json이 들어 있었습니다.
  • main 실행 39110891538의 release와 39046585305의 이전 publish가 unresolved changepack update paths: apps/landing/package.json로 실패했습니다. 첫 실행의 검증 5개 작업은 모두 성공했으나 릴리스만 실패했습니다.
  • 세 로그에서는 앱 항목만 제거하고 WASM Patch, 원래 note와 date를 그대로 보존합니다. 유일한 항목이 비관리 앱이었던 문서 전용 로그는 코디네이터 승인 후 삭제합니다.
  • 병합 후 다음 정상 main 릴리스 실행에서 Update Versions PR #769가 다시 갱신될 수 있습니다.

동작

일반 PR CI의 bun test 검색 루트인 packages 아래에 저장소 소유 packages/__tests__/changepack-paths.test.ts를 추가합니다. 게시 패키지에 속하는 테스트나 새 package manifest를 만들지 않습니다. 실제 config와 파일시스템에서 관리 대상 manifest를 구한 뒤, 모든 changepack 로그의 모든 changes 키가 존재하는 정규 package 경로에 포함되는지 검사합니다. 앱·루트·benchmark·없는 manifest·비정규 경로는 실패하고, 진단은 로그와 키 순으로 결정론적으로 정렬됩니다. 플러그인 테스트의 node:fs spy와 분리된 Bun 파일 API를 사용합니다.

최신 @changepacks/cli의 update --dry-run --remote로 전체 로그의 실제 업데이트 경로 해석을 확인합니다. check만으로는 비관리 로그 키가 누락될 수 있으므로 이를 전체 경로 검증의 대체로 사용하지 않습니다. 실제 update/publish, npm publish, 토큰 사용은 하지 않습니다.

삭제 승인된 .changepacks/changepack_log_docs_accuracy.json의 원문을 보존합니다.

note: Documentation examples now preserve Button event handlers and show the CSS actually emitted for values, colors, keyframes, fonts and atomic rule reuse. Documentation only: no new build errors.

date: 2026-10-01T00:00:00.000Z

새로 생기는 오류

새로운 사용자 빌드 오류는 없습니다. 존재하지 않거나 config가 관리하지 않는 package 경로를 changepack에 넣으면 PR의 일반 Bun 테스트가 해당 로그와 키를 표시하며 실패합니다.

남는 한계

워크플로와 게시 패키지는 변경하지 않으며 불필요한 버전 상승 로그도 추가하지 않습니다. jetli/wasm-pack-action의 공개 최신 릴리스는 확인 시점에도 v0.4.0(2022-11-23)이었습니다. Node 20 경고에 대한 워크플로 변경은 이 PR이 아닌 #746 범위입니다. 사용자 검토를 기다리며 자동 병합하지 않습니다.

검증

  • 최신 Bun 1.4.3, Rust stable 1.99.1, wasm-pack 0.15.0. 기본 Rust 스택, CARGO_BUILD_JOBS=2, CI 미설정, native job 메모리 제한을 사용합니다.
  • RED: 수정 전 최신 @changepacks/cli 0.3.6 update --dry-run --remote가 동일한 비관리 앱 경로에서 종료 코드 1로 실패했습니다.
  • RED: 로그 수정 전 부모의 새 guard 재실행도 16 pass / 1 fail로 네 로그의 앱 경로를 정확히 표시했습니다. 수정 후 같은 guard는 17 pass / 0 fail입니다.
  • GREEN: 최신 CLI 0.3.6의 동일한 update --dry-run --remote는 관리 패키지 11개의 계획을 모두 해석하고 Dry run, no updates will be made와 종료 코드 0을 반환했습니다. 추가 릴리스 오류는 없었습니다. check --remote --format json에서도 관리 패키지 11개가 모두 changed: false여서 추가 버전 상승 로그는 필요하지 않습니다.
  • 최신 main 기준 WASM 재빌드와 루트 빌드 성공, cargo test --workspace 4,857개 성공, 스냅샷 변경 없음.
  • 전체 pre-commit hook 성공(555초): fmt, strict clippy, ESLint 오류 0, Rust 4,857개 성공, 일반 Bun 테스트 6,049개 성공 / 0개 실패 / 함수·라인 커버리지 100%. 신규 guard도 일반 테스트에서 실행됩니다. 기존 main TypeScript의 경고 20개 외 추가 경고는 없습니다.
  • 최신 도구 점검에서 로컬 tarpaulin 0.37.2보다 새 0.37.5가 확인되어 worker private 경로에 최신 버전을 설치했습니다. 공유 도구와 저장소 의존성은 변경하지 않았으며, 0.37.5가 실제 선택되는지 확인한 후 전체 hook 스크립트를 다시 실행해 성공했습니다(598초, Rust 4,857개 및 Bun 6,049개 성공 / 0개 실패 / 함수·라인 100%).
  • 최신 tarpaulin의 로컬 Windows LLVM Rust 수치는 98.32%(19,096/19,423)이며 Linux 100% 게이트로 주장하지 않습니다. TypeScript/Biome LSP는 설치되지 않아 실행할 수 없었지만 실제 lint·컴파일러·테스트는 통과했습니다. hook 종료 후 이 worktree의 서버·빌드 프로세스 잔류도 없었습니다.
  • verify:dist 성공. 최종 독립 코드·QA 검토는 APPROVE / HIGH, blocker 없음입니다.
  • 실제 Linux CI 39123724300 SUCCESS: publish, landing-next-e2e, react-18, vinext-rsc-css-e2e, benchmark 모두 성공. PR에서 release/deploy-pages는 정상적으로 skipped입니다.
  • 해당 CI 로그에서 Rust tarpaulin 100.00%(13,926/13,926), Bun 6,336 pass / 0 fail / 함수·라인 100%, 별도 preload race 9 pass / 0 fail, landing E2E 190개씩 양 CSS 모드 성공을 확인했습니다. CI는 당시 main과의 실제 병합 결과를 검증하므로 로컬의 이전 main 기반 테스트 수와 다릅니다.

Refs #683

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
see 44 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@owjs3901
owjs3901 merged commit 103b7d3 into main Oct 18, 2026
8 checks passed
@owjs3901
owjs3901 deleted the fix/changepack-paths branch October 18, 2026 13:25
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