규칙 13.10
13장, 변경 관리 테스트
A change that keeps a program compiling and makes it compute something else must ship in two steps, and the second must come no earlier than the next breaking release after the first step’s release was published (the next minor before 1.0.0, the next major after it).
First, a published release must report every affected line as a category: 'warning' diagnostic behind the opt-in deprecation option (compile(src, { deprecations: true }), tshc check --deprecations), naming the edit that keeps today’s meaning, with no emitted byte moved with the option on or off.
Then the default changes, the warning and its code are retired, a ### Changed entry names the old meaning, the new one and the one-line edit that keeps the old, and every example golden is re-baked and reviewed.
The window is counted in published releases. From 1.0.0, a spelling or an export that will be removed must get the same window: the spelling warns under the same option, and the export carries @deprecated in its JSDoc naming its replacement.
규칙 본문과 그 아래 항목은 설계 문서에 적힌 컴파일러 원문이라 한국어 페이지에서도 영어로 둡니다.
근거
a program that stops compiling says so, with its fix (Rule 12.1); a program that computes something else says nothing, and a shader is where a silent change is hardest to see. A warning that never reached npm warned nobody.
출처
RELEASING.md#7-versions-and-deprecations; changes/0010-versions-and-deprecation-window.md; #148, the first change to take the window.
검증 방식
테스트로 확인합니다. 테스트나 게이트 스크립트, CI 워크플로가 이 규칙을 가리키고, 아래 파일 가운데 하나라도 규칙을 더는 가리키지 않으면 추적 검사가 실패합니다.
컴파일러가 이 규칙을 적용하는 곳을 규칙이 직접 적은 내용입니다.
src/compiler/ts/integer-literal-deprecation.test.ts (the first step for #148: the warning under the option, no emitted byte moved); review for the timing of the second step.
커밋 c66579bf에서 이 규칙을 확인하는 파일입니다. 파일마다 규칙을 처음 가리키는 줄로 연결했습니다.
함께 보기
소스
커밋 c66579bf의 규칙 원문:
docs/language-design.md:1376(설계 문서)reqs/rules/RULE-1310.md(추적 항목)