Edit Files
Login Register

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
    • driver.go
  • vendor
    • github.com/aaa/aaa/
      • types.go

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

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

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

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