1. ^ Caret syntax
2. Traditional syntax
any
- 모든 버전을 허용
- 권장하지 않음. 프로젝트에 영향을 줄 수 있다.
1.2.3
- 오직 1.2.3 버전만 허용
- 권장하지는 않는 방식 함께 의존하는 다른 패키지를 사용하기 어렵게 만들 수 있다.
>=1.2.3
- 1.2.3 버전 이상.
- 주어진 버전 또는 이상의 버전을 허용한다.
- 일반적으로 사용된다.
>1.2.3
- 1.2.3 초과 버전
- 지정된 버전보다 큰 모든 버전을 허용한다.
<=1.2.3
- 1.2.3 버전 이하.
- 지정된 버전 또는 낮은 모든 버전을 허용한다.
<1.2.3
- 1.2.3 버전 미만.
- 지정된 버전보다 낮은 버전을 허용한다.
- 일반적으로 사용한다.(패키지에서 작동하지 않는 상위 버전을 지정할 수 있기 때문이다.)
Flutter team에서는 Caret Syntax를 통해 버전 관리를 권장했다.
environment:
sdk: '>=3.3.1 <4.0.0'
// pubspec.yaml의 Dart SDK 버전 설정 내용이다.
// 공식문서에 Dart SDK constraint에는 caret syntax를 사용하지 말라고 되어있다.
1.2.3 (주.부.수)
- 기존 버전과 호환되지 않게 API가 바뀌면 "주"
- 기존 버전과 호환되면서 새로운 기능이 추가된 경우 "부"
- 기존 버전과 호환되면서 버그가 수정된 것이라면 "수"
패키지 버전이 업데이트 됐을 때 해당 문서 Change Log를 확인하는 것이 좋겠으나,
대강 어떤게 업데이트 됐겠구나 추측이 가능하다