Glide

https://github.com/Masterminds/glide

golang의 디펜던시 관리 툴이다. 하지만 여전히 gopath를 설정하고 gopath 안에서만 제대로 동작한다. 즉 vendoring 만 도와 줄뿐 여전히 gopath 를 설정해야 하는 것은 변함 없다.

https://glide.readthedocs.io/en/latest/glide.yaml/

vendor내의 type과 바깥에 있는 Type이 실질적으로 같은 경우에도 타입이 다르다고 인식하는 문제 때문에 쓰기가 어렵다.

https://github.com/golang/go/issues/18827

이게 심각한게 다음과 같은 경우에서도 문제가 생긴다.

main.go와 driver.go 에서 types.go의 type을 사용

main.go에서 import “driver” 한후 types.go에 있는 type을 인자로 하여 driver를 쓰면 상기 에러가 나면서 컴파일이 안된다. (interface는 관계 없다.)

그래서 패키지를 나눌수가 없게 된다. 이 문제가 해결되지 않으면 vendor 를 쓸때 반드시 양쪽에서 vendor 안에 있는 type을 쓰지 않아야 하는데, 이게 쉽지 않다. 그래서 vendor 를 활용하는 glide 도 쓰기 쉽지 않다.

차라리 go get 만 쓰고 안깨지기를 비는 것이 낫다.