본문으로 건너뛰기

이 문서는 V8에서 웹어셈블리 기능의 스테이징 및 출시에 대한 엔지니어링 요구사항 체크리스트를 제공합니다. 이 체크리스트는 가이드라인으로 작성되었으며 모든 기능에 적용될 수는 없습니다. 실제 출시 프로세스는 V8 출시 프로세스에 설명되어 있습니다.

스테이징

웹어셈블리 기능을 스테이징하는 시점

웹어셈블리 기능의 스테이징은 구현 단계가 끝나는 시점을 정의합니다. 구현 단계는 다음 체크리스트가 완료되었을 때 완료됩니다:

  • V8에서 구현이 완료되었습니다. 이는 다음을 포함합니다:
    • TurboFan에서 구현 (해당되는 경우)
    • Liftoff에서 구현 (해당되는 경우)
    • 인터프리터에서 구현 (해당되는 경우)
  • V8에서 테스트가 가능합니다
  • tools/wasm/update-wasm-spec-tests.sh를 실행하여 V8에 사양 테스트를 롤링합니다
  • 모든 기존 제안 사양 테스트가 통과합니다. 부족한 사양 테스트는 아쉽지만 스테이징을 막지는 않아야 합니다.

표준화 프로세스에서 기능 제안의 단계는 V8에서 기능을 스테이징하는 데 중요하지 않습니다. 그러나 제안은 대체로 안정적일 필요가 있습니다.

웹어셈블리 기능을 스테이징하는 방법

타입 반영의 스테이징을 참조로 확인하세요.

출시

웹어셈블리 기능을 출시할 준비가 되었는지 확인 시점

웹어셈블리 기능을 출시하는 방법

  • src/wasm/wasm-feature-flags.h 에서 기능 플래그를 FOREACH_WASM_STAGING_FEATURE_FLAG 매크로 목록에서 FOREACH_WASM_SHIPPED_FEATURE_FLAG 매크로 목록으로 이동합니다.
    • 기능 활성화로 인해 발생한 blink 웹 테스트 실패를 확인하기 위해 CL에 blink CQ 봇을 추가해야 합니다 (CL 설명의 풋터에 이 줄을 추가합니다: Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel).
  • 추가적으로, FOREACH_WASM_SHIPPED_FEATURE_FLAG에서 세 번째 매개변수를 true로 변경하여 기본적으로 기능을 활성화합니다.
  • 두 번째 마일스톤 이후 기능 플래그를 제거하도록 알림을 설정합니다.