пятница, 18 сентября 2015 г.

Golang dependency hell — привет прошлое.

Софт на golang начинаю ненавидеть уже больше чем софт на Ruby.

Неверсионированные зависимости внешних либ с гитхаба — это не просто какой то рядовой адъ, это натуральное адище.

Рассчитывать на то что программа, которая тебе нужна, соберется в случайный момент времени точно не стоит.

Для автора программы это может и не проблема, ну делов то, поправил.
А если ты пользователь/админ десятка go программ, которые надо много куда раскатывать, то ты попал.

Единственный вариант, ловить удачные фазы луны, и в эти моменты собирать проги , и хранить их в докер-имаджах.

Да, одной протекающей абстракцией латаем другую, и всё это умножаем на прокачанный скил удачи.

Прав +Baruch Sadogursky  когда из подкаста в подкаст ходит и объясняет необходимость хранения артефактов.

Гошников надо натурально заставлять, каждый билд своей нетленки  в публичный бинарный репозиторий засовывать.

Хотя, мне вот по прежнему неуютно с чужими бинарями, но какое то решение уже нужно.

# github.com/coreos/go-etcd/etcd
../../coreos/go-etcd/etcd/response.generated.go:112: r.EncodeMapKVSeparator undefined (type codec.encDriver has no field or method EncodeMapKVSeparator)
../../coreos/go-etcd/etcd/response.generated.go:123: r.EncodeArrayEntrySeparator undefined (type codec.encDriver has no field or method EncodeArrayEntrySeparator)
../../coreos/go-etcd/etcd/response.generated.go:137: r.EncodeMapEntrySeparator undefined (type codec.encDriver has no field or method EncodeMapEntrySeparator)
../../coreos/go-etcd/etcd/response.generated.go:143: r.EncodeMapKVSeparator undefined (type codec.encDriver has no field or method EncodeMapKVSeparator)
../../coreos/go-etcd/etcd/response.generated.go:158: r.EncodeArrayEntrySeparator undefined (type codec.encDriver has no field or method EncodeArrayEntrySeparator)
../../coreos/go-etcd/etcd/response.generated.go:173: r.EncodeMapEntrySeparator undefined (type codec.encDriver has no field or method EncodeMapEntrySeparator)
../../coreos/go-etcd/etcd/response.generated.go:179: r.EncodeMapKVSeparator undefined (type codec.encDriver has no field or method EncodeMapKVSeparator)
../../coreos/go-etcd/etcd/response.generated.go:195: r.EncodeArrayEnd undefined (type codec.encDriver has no field or method EncodeArrayEnd)
../../coreos/go-etcd/etcd/response.generated.go:197: r.EncodeMapEnd undefined (type codec.encDriver has no field or method EncodeMapEnd)
../../coreos/go-etcd/etcd/response.generated.go:216: r.ReadMapEnd undefined (type codec.decDriver has no field or method ReadMapEnd)
../../coreos/go-etcd/etcd/response.generated.go:216: too many errors

сегодня вот к примеру etcd не собрался.
Ну, пятна на солнце то сё.

Как говорили в свежем подкасте DevZen ну делов то, редко же надо, сходи кофе попей.

А мне вот надо сегодня, и никаких надежд что вскоре оно соберется - нет.

Как быть?