
235
4
장
의존성
마지막으로
1
.
0
.
0
버전을 릴리스하는 데 너무 겁먹지 말기 바란다. 단지
API
가 이제 고정되었
음을 선언하는 정도의 의미이기 때문이다. 영원히
0
.
x
버전에 머무르는 함정에 빠지는 경우가
많은데, 그렇게 하면 세 가지 범주(메이저/마이너/패치 )로만 제한된 셈버의 표현력이 두 가지
범주 (유효-메이저/유효-마이너)로 더 줄어든다.
크레이트 사용자를 위한 셈버
크레이트 사용자로서는 의존성 버전이 바뀔 때 이론적으로 다음과 같은 결과가 발생할 수 있다.
●
패치 버전이 달라진 의존성 크레이트는
그냥 돼야 한다.
3
●
마이너 버전이 달라진 의존성 크레이트는 그대로 작동하지만, 크레이트를 더 깔끔하게 잘 사용하는 방법
은 없는지
API
에서 바뀐 부분을 좀 더 검토할 필요가 있다. 하지만 새로 바뀐 부분을 사용하면, 의존성을
다시 이전 버전으로 되돌릴 수 없다.
●
의존성 코드의 메이저 버전이 달라진 경우에는 어떠한 일도 일어날 수 있다. 기존 코드가 컴파일되지 않
아서 새
API
와 호환되도록 코드 일부를 다시 작성해야 할 가능성이 높다. 설사 컴파일되더라도
메이저
버전이 달라진 API를 정확하게 사용하는지 확인해야 한다.
라이브러리의 제약 조건과 선행 조건이 달라
질 수 있기 때문이다.
실전에서는 하이럼의 법칙에 의해 첫 번째와 두 번째 항목의 경우 ...