golang

Golang: go get으로 패키지를 최신으로 업데이트 하는 법

주먹불끈 2022. 12. 15. 00:49

개요

별 생각없이 go get -u 옵션을 사용해왔었는데 회사에서 사용하는 패키지를 이용한 개발을 하다 그 의미를 이해하게 되었다.

어떤 상황이었나?

go work를 이용해서 workspace 디렉토리 아래에 개발하는 애플리케이션과 패키지 디렉토리를 두고 개발한다. 이 경우 애플리케이션은 같은 workspace 아래의 패키지를 이용하기 때문에 패키지를 수정해가며 개발을 할 수 있다. 하지만, 이 경우 애플리케이션의 go.mod 에 명시한 패키지의 버전 정보가 맞지 않게 된다.

해법은 go get -u 옵션

이를 업데이트 시켜주려면

1. 패키지를 GitHub으로 git push 해 준 다음에

2. go get -u 옵션으로 다시 패키지를 가져오면 된다.

 

좀 더 정확히는 시멘틱 버저닝으로 보면 메이저 버전은 동일한 데 마이너, 패치 버전이 가장 최신인 패키지를 가져오는 것이다. 메이저 버전이 업데이트된 패키지는 호환이 되지 않기 때문이다.

 

공식 안내 참고

The -u flag instructs get to update modules providing dependencies of packages named on the command line to use newer minor or patch releases when available.

시간이 날 때에

go work를 사용해서 GitHub에 private repository로 관리하는 패키지와 함께 수정해가며 개발하는 프로세스 전반과 그 과정속 소소한 팁을 정리해보려 한다.

반응형