Правильный инструмент Golang - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу, чтобы все мои зависимости находились под контролем исходного кода наряду с моими проектами в Go.

Я вижу там два основных инструмента для выполнения работы (Dep и Glide).

Проблема в том, что Dep States на своей странице:

dep был "официальным экспериментом".В наборе инструментов Go по состоянию на 1.11 (экспериментально) принят подход, резко отличающийся от dep.В результате мы продолжаем разработку dep, но ориентируемся в основном на разработку альтернативного прототипа для управления версиями в инструментальной цепочке.

Хотя Glide, с другой стороны, похоже, не имеетЛюбая деятельность по его репо.

Я хочу знать, как «вы», ребята, имеете дело с этим?

Я действительно люблю Go и это философия, но я должен признать, что управление зависимостямидействительно грязный.

Ответы [ 2 ]

1 голос
/ 17 июля 2019

По моему опыту, мое решение использует go modules для управления зависимостями. У меня возникли некоторые проблемы с dep при установке зависимостей, и мне потребовалось много усилий, чтобы это исправить. Поэтому я переключаюсь на модуль Go, и он работает, как и ожидалось, в производственной среде. Модуль - это встроенная функция Go, которая была представлена ​​в Go 1.11 и начиная с Go 1.13, режим модуля будет использоваться по умолчанию для всех разработок.

Модули Go упрощают и ускоряют установку зависимостей. С модулем все зависимости будут перечислены в файле go.mod:

module example.com/hello

require (
    github.com/some/dependency v1.2.3
    github.com/another/dependency/v4 v4.0.0
)

Как получить зависимость:

go get github.com/some/dependency@v1.2.3
1 голос
/ 02 апреля 2019

Я не эксперт по Golang, поэтому могу ошибаться, но в соответствии с golang / go wiki :

Для любых производственных рабочих нагрузок используйте dep или migrateесли вы еще этого не сделали.

Предложение было принято, и vgo был объединен с деревом Go в версии 1.11.

Вы сможете поэкспериментировать с рабочим процессом модуля изПерейдите к версии 1.11, как это включено в качестве эксперимента в этом выпуске.

Таким образом, похоже, что поддержка модулей сейчас находится в экспериментальном режиме, и вы должны придерживаться dep для любого готового кода, пока vgo не станет полностью интегрированным.

Обратите внимание, что у dep есть собственный набор проблем, как объяснено в этой статье , в основном вращающихся вокруг конфликтующих версий и управления переходными зависимостями.До тех пор, пока vgo не будет считаться готовым к работе, я понимаю, что вам придется самостоятельно решать эти проблемы.

edit: добавлен раздел о проблемах dep.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...