LINUX.ORG.RU

dependency hell

 ,


0

4

Кто чем пользуется? Какие проблемы, какие успехи?

На повестке дня:

  • gvt — используется актуально. Прост до безобразия. Пожалуй слишком прост. Не умеет правильно разворачивать рекурсивные зависимости.
  • govendor — интересная альтернатива, но разрабатывается как-то не очень активно.
  • glide — целый пакетный менеджер со свистелками и перделками, что тоже уже перебор.
  • godep — старичёк ещё с до-vendor-времён, но вроде ещё жив и сдаваться не собирается.
  • другой?

Всё не перепробуешь, поэтому вот хочется послушать у кого какой опыт.

★★★★★

Последнее исправление: beastie (всего исправлений: 2)

govendor

название какое-то не очень оптимистичное

Harald ★★★★★
()

В gb vendor плагин был, ЕМНИП.

Kilte ★★★★★
()
Ответ на: комментарий от derlafff

Очень туго обновляет зависимости, подчищать ненужные тоже нормально не умеет. Но многого от него особо и не надо.

derlafff ★★★★★
()
Ответ на: комментарий от derlafff

gb vendor restore тоже невозможно использовать, поэтому все приходится хранить в vendor/

но хотя оно сейчас научилось юзать git submodule

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 2)
Ответ на: комментарий от derlafff

gb projects can be retrieved using go get, but cannot be built by the go tool as they do not follow the convention required by go get.

:-/ манипуляции с $GOPATH мне как-то не очень нравятся.

beastie ★★★★★
() автор топика
Ответ на: комментарий от beastie

разве что для всяких вимов, которые прямо go build при сохранении файла дергают приходится городить костыли (но я себе заменил go build на gb build в синтаксике)

derlafff ★★★★★
()
Ответ на: комментарий от beastie

Но все, кого знаю, бегут от submodules на край света.

Я тоже, собственно (: неудобная дичь

derlafff ★★★★★
()
Ответ на: комментарий от Deleted

Это уже включено по умолчанию с 1.6 и не отключаемо с 1.7.

TL;DR

beastie ★★★★★
() автор топика
Ответ на: комментарий от beastie

Но все, кого знаю, бегут от submodules на край света

Почему кстати?

Не приходилось пока пользоваться, но интересно понять, что там не так?

alpha ★★★★★
()

А можно «глупый» вопрос ? Зачем все эти приблуды нужны и что они дают ?
Я обычно в Makefile делаю так:

$(TARGET): main.go
    go get -d -v
    go build -v -o $@

И все зависимости подтягиваются при непосредственной сборке.

joy4eg ★★★★★
()
Ответ на: комментарий от joy4eg

Фиксация кода. В частности нужо, что бы быть независимым от внешних источников.

Например: ты используешь github/vasya/libastral а через 2 недели Вася решит удалить репу с гитхаба. И всё, приехали.

beastie ★★★★★
() автор топика
Ответ на: комментарий от joy4eg

И все зависимости подтягиваются при непосредственной сборке.

Черт, а я думал, что существование таких персонажей - это анекдот и клевета.

Зачем все эти приблуды нужны и что они дают ?

Воспроизводимая сборка, сборка без Интернет.

tailgunner ★★★★★
()

Если бы я использовал go, я бы использовал системный менеджер пакетов, а если нужных пакетов не, добавлял бы их туда. Для остальных языков так и делаю.

slovazap ★★★★★
()
Ответ на: комментарий от beastie

Ок, понял, спасибо :)

tailgunner, может и анекдот, но все приходит с опытом.

joy4eg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.