remove_deprecations_in_breaking_versions 진단: breaking 버전에서는 deprecated 요소를 제거하세요

remove_deprecations_in_breaking_versions 진단: breaking 버전에서는 deprecated 요소를 제거하세요

Dart 분석기가 내보내는 진단에는 이름이 있어요. remove_deprecations_in_breaking_versionsbreaking 버전 번호(x.0.0 또는 0.x.0)를 가진 패키지에서, @Deprecated 어노테이션이 달린 선언이 아직 남아 있을 때 Dart 분석기가 알려주는 진단이에요. 새 버전을 내놓을 때 더 이상 쓰지 말라고 표시한 요소를, 큰 변화가 있는 버전에서 정리하라는 신호예요.

출처: remove_deprecations_in_breaking_versions

본문

설명

분석기는 "breaking" 버전 번호(x.0.0이나 0.x.0)를 가진 패키지에서, @Deprecated 어노테이션이 붙은 모든 선언에 대해 이 진단을 만들어요. 마이너나 패치 버전에서 아직 제거하면 안 되는 경우와는 달리, breaking 버전에서는 deprecated 요소를 제거할 준비가 되었다고 판단하는 거예요.

예시

다음 pubspec.yaml을 가진 패키지를 생각해 볼게요.

name: p
version: 2.0.0
environment:
  sdk: ^3.9.0

이 상태에서 다음 코드는 함수 f@deprecated로 표시되어 있기 때문에 이 진단을 만들어요.

@Deprecated('...')
void f() {}

void g() {}

흔한 해결 방법

패키지의 다음 릴리스에서 해당 선언을 제거해야 한다면, 그 선언을 제거해요.

void g() {}

breaking change를 만들지 않는다면, 패키지 버전을 마이너 또는 패치 단위로 올려요.

name: p
version: 1.0.1
environment:
  sdk: ^3.9.0

더 알아보기