규칙 13.9
이 페이지에서

규칙 13.9

13장, 변경 관리 테스트

A published version must follow Semantic Versioning 2.0.0, and before 1.0.0 the minor is the breaking position: a breaking change must ship only in a new 0.N.0, and a 0.N.P must only fix and add. From 1.0.0, a breaking change must ship only in a new major. A change is breaking when an upgrade can make a program that worked stop working or work differently: compile() or the language service refuses a program it accepted, a program that compiled computes a different value on a target or on the CPU oracle, an export listed in src/__api__/surface.md is removed or reshaped so that a caller’s code no longer type-checks, or the typescript peer range narrows. A change is not breaking when the emitted text moves and the values it computes do not, when a warning is added, when a program is newly refused that Tint or WebGL2 already refused (Rule 12.6), or when a target or the oracle is fixed to compute what WGSL defines; that last is recorded under ### Fixed with the old result named. Every breaking change must carry a CHANGELOG.md entry that names the edit an author makes to migrate.

규칙 본문과 그 아래 항목은 설계 문서에 적힌 컴파일러 원문이라 한국어 페이지에서도 영어로 둡니다.

근거

npm’s caret range reads a 0.x version as >=0.N.0 <0.(N+1).0, so a break in a patch reaches every ^0.N.0 user unasked; and semver alone does not say what “breaking” means for a compiler whose output text changes far more often than its meaning.

출처

roadmap item 25 (docs/roadmap.md), decided by the maintainer on 2026-09-24 in changes/0010-versions-and-deprecation-window.md.

검증 방식

테스트로 확인합니다. 테스트나 게이트 스크립트, CI 워크플로가 이 규칙을 가리키고, 아래 파일 가운데 하나라도 규칙을 더는 가리키지 않으면 추적 검사가 실패합니다.

컴파일러가 이 규칙을 적용하는 곳을 규칙이 직접 적은 내용입니다.

src/changelog.test.ts (the version headings of CHANGELOG.md and the minor bump of a release that breaks); review for what counts as breaking.

커밋 c66579bf에서 이 규칙을 확인하는 파일입니다. 파일마다 규칙을 처음 가리키는 줄로 연결했습니다.

함께 보기

소스

커밋 c66579bf의 규칙 원문:

이 페이지 편집 문제 보고