버전 요구 사항에서 물결표 (~>)의 의미는 무엇입니까?
~>
gem 사양에서 버전 요구 사항 의 의미는 무엇입니까 ?
hanna-0.1.12는 [haml (~> 2.2.8)]에 따라 다릅니다.
RubyGems 매뉴얼은 이것을 비관적 버전 제약 이라고 부릅니다 .
제약 조건으로 1.3
(2- 파트) 또는 3.5.6.2
(4- 파트)와 같은 n- 파트 버전 번호를 지정했다고 가정합니다 . 그런 다음 제약 조건을 충족하기 위해 버전 번호는 다음 조건을 모두 충족해야합니다.
처음 n-1 버전 번호의 일부는 처음 n-1 제약의 부품과 동일 (예를 들어 있어야합니다
1.x
또는3.5.6.x
일치하지만,0.x
또는3.5.7.x
안) 및버전 번호의 마지막 부분은보다 커야 또는 제약의 마지막 부분에 동일 (예를 들어 있어야
1.9999
와3.5.6.2
일치하지만,1.2
또는3.5.6.1
하지 않습니다).
다시 말해
~> x 1 .x 2 .x 3 . … .x n-2 .x n-1 .x n
성냥
x 1 .x 2 .x 3 . ... .x와 N-2- .x와 N-1 .Y, Y> X = N
이것을 "비관적"제약이라고 부르는 이유와 그 사용 사례는라고 말하면 > x.y.z
낙관적이기 때문입니다. 여기서부터는 영원히 API가 절대 변하지 않을 것이라고 가정합니다. 물론 이것은 매우 대담한 가정입니다. 그러나, 대부분의 프로젝트는이 허용되는 경우에 대한 규칙이 이전 버전과의 호환성을 휴식 , 그리고 어떻게 그들이 때 자신의 버전 번호를 변경해야 할 브레이크 이전 버전과의 호환성을. 비관적 제약을 사용하여 이러한 버전 번호 지정 규칙을 인코딩 할 수 있으므로 코드가 항상 계속 작동하도록 할 수 있습니다 (다른 프로젝트의 작성자가 실제로 자신의 규칙을 준수한다고 가정하면 안타깝게도 항상 그런 것은 아닙니다). ).
즉,이 기호를 사용하여 모든 사소한 업데이트로 gem을 업데이트하고 앱을 손상시킬 수있는 주요 업데이트를 피할 수 있습니다.
예를 들어 "~> 1.2"는 gem을 1.3으로 업데이트하지만 (해당 버전이 출시 된 경우) 2.0으로 업데이트하지는 않습니다.
번 들러 문서는 이것을 가장 잘 요약 한다고 생각 합니다.
지정자 ~>는 특별한 의미를 가지고 있습니다. ~> 2.0.3은> = 2.0.3 및 <2.1과 동일합니다. ~> 2.1은> = 2.1 및 <3.0과 동일합니다. ~> 2.2.beta는 2.2.beta.12와 같은 시험판 버전과 일치합니다.
동일한 주 / 부 부분이있는 모든 버전과 일치합니다. 이것은이 경우 haml ~> 2.2.8이 2.2.x 버전과 일치 함을 의미합니다.
이것은 새로운 gem의 API 브레이킹 체인지가이 경우 hanna를 깨뜨릴 수있는 새롭게 변경된 gem에 의존하지 않는지 확인하는 데 사용할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3414337/meaning-of-tilde-greater-than-in-version-requirement
'IT박스' 카테고리의 다른 글
Roslyn에서 비동기 상태 머신 클래스 (구조체가 아님)가있는 이유는 무엇입니까? (0) | 2020.09.17 |
---|---|
JAR 파일에서 메인 클래스 매니페스트 속성을로드하지 못한 이유는 무엇입니까? (0) | 2020.09.17 |
matplotlib에서 사용중인 백엔드를 어떻게 결정합니까? (0) | 2020.09.17 |
Android의 전체 텍스트 검색 예 (0) | 2020.09.17 |
셸에서 함수 내보내기 (0) | 2020.09.17 |