Go модов продавцов старая версия зависимости - PullRequest
0 голосов
/ 10 февраля 2019

Я обновился до go1.11 и пытаюсь использовать модули go.Я клонировал проект и запустил go build, который создает файлы go.mod и go.sum со всеми моими зависимостями.

Теперь я хотел бы продать файлы, поэтому я запускаю команду go mod vendor

К сожалению, перейти к модам, продающим старую версию go-bindata .Мой проект не может быть собран, потому что вызов функции не существует.Глядя на исходный код поставщика go-bindata, я вижу, что он отличается от того, что доступно в основной ветке проекта go-bindata.

В моем файле go.mod есть следующее:

github.com/jteeuwen/go-bindata v3.0.7+incompatible

В моем файле go.sum есть следующее:

github.com/jteeuwen/go-bindata v3.0.7+incompatible h1:91Uy4d9SYVr1kyTJ15wJsog+esAZZl7JmEfTkwmhJts=
github.com/jteeuwen/go-bindata v3.0.7+incompatible/go.mod h1:JVvhzYOiGBnFSYRyV00iY8q7/0PThjIYav1p9h5dmKs=

В GitHub самый последний тег для go-bindata - v3.0.7 в основной ветви.

Любые идеи, почему go mod ссылается на старую версию и как я могу это исправить.На другом компьютере запуск go get -u https://github.com/jteeuwen/go-bindata позволяет получить самый последний проект.Почему go mod не делает то же самое?

РЕДАКТИРОВАТЬ: Проблема в том, что go mod говорит, что он получил v3.0.7, но исходный код не совпадает с тем, что в настоящее время доступно на Github с 3.0.7тег.То, что у меня локально, выглядит как v3.0.6, но помечено как v3.0.7.

В версии на Github есть структура, которая выглядит следующим образом: ссылка на источник

type Config struct {
     //... some other fields
     NoMetadata bool
}

Но в моей локальной версии поставщика структура Config не имеет поля NoMetadata.Похоже, go mod использует более старый тег и думает, что использует самый последний.

1 Ответ

0 голосов
/ 10 февраля 2019

Самым последним тегом для этого репо является v3.0.7, так что go mod получает вас.Из часто задаваемых вопросов :

Если хранилище не подключено к модулям, но помечено допустимыми тегами semver (включая требуемый ведущий v), тогда эти теги semver могут бытьиспользуется в go get, и соответствующая версия semver будет записана в файле go.mod импортирующего модуля.

Проблема в том, что вам нужен код, которого нет в теге 3.0.7, нов основной ветке?


Глядя на конкретное поле NoMetadata в вашем обновлении, оно было добавлено в https://github.com/jteeuwen/go-bindata/commit/7f4fb1184ff6bab28016ed674b61864665ba3d97, 2015-08-13.Между тем v3.0.7 был помечен на 2014-11-20

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

Учитывая эту ситуациюВы можете просто разветвить репозиторий - он не поддерживается с 2015 года (и README признает, что он не поддерживается).Или найти что-то, что постоянно обновляется.Или убедите сопровождающих создать новый тег.

...