에디션은 버전 업그레이드가 아니라 문법 경계 선택이다
컴파일러는 계속 최신으로 올릴 수 있지만, 크레이트가 어떤 문법 규칙을
채택할지는
edition 값이 정한다.
불변 경계
릴리즈
6주 단위로 컴파일러와 표준 라이브러리가 개선된다.
에디션
몇 년 단위로 문법과 관용구 묶음을 선택한다.
링크
서로 다른 에디션 크레이트도 같은 프로그램 안에서 함께 쓸 수 있다.
01
현 에디션 확인
Cargo.toml의 edition 값이 문법 해석
기준이다.
02
차이 검토
새 키워드, 경고, 관용구 변화가 현재 코드와 충돌하는지 확인한다.
03
도구 보조
cargo fix로 기계적 변경을 먼저 적용하고 수동 검토를
남긴다.
04
팀 기준 고정
새 프로젝트 기본값과 기존 프로젝트 전환 시점을 문서화한다.
| 질문 | 확인 위치 | 결정 기준 |
|---|---|---|
| 컴파일러를 올려도 되는가 | CI, 테스트, 의존성 호환성 | 에디션 변경 없이도 최신 안정 버전은 계속 받을 수 있다. |
| 에디션을 바꿔도 되는가 |
Cargo.toml, 키워드 충돌, lint
|
문법 해석 변화와 팀 학습 비용을 함께 본다. |
| 의존성이 다른 에디션인가 | 크레이트 메타데이터 | 에디션이 달라도 링크 가능하므로 무리하게 맞추지 않는다. |
업그레이드
컴파일러 버전 상승과 에디션 전환을 같은 작업으로 묶지 않는다.
자동 수정
도구가 바꾼 diff도 공개 API와 동작 기준으로 다시 검토한다.
팀 운영
새 팀원이 프로젝트 문법 기준을 바로 알 수 있게 에디션을 명시한다.