go.mod изменения в travis-ci

Я обновил свой проект, чтобы использовать поддержку модулей go 1.11.2. Однако я столкнулся с очень неприятной проблемой. Файл go.mod постоянно меняется в CI. Каждый день это новый файл. Сегодня в go.sum есть следующие строки:

golang.org/x/net v0.0.0-20190213061140-3a22650c66bd h1:HuTn7WObtcDo9uEEU7rEqL0jYthdXAmZ6PP+meazmaU=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=

Go.mod:

golang.org/x/net v0.0.0-20190213061140-3a22650c66bd // indirect

Никаких зависимостей не обновлял. Они не блокируются! Почему нет? Это действительно большая проблема, если зависимости постоянно меняются. Однако я не вижу, чтобы другие кричали об этой проблеме. Так что я, должно быть, делаю что-то не так.

Я использую go mod tidy, чтобы синхронизировать его перед git diff --exit-code. Это работает локально, но не работает в Travis-CI. Я думаю, что это проблема, потому что в Travis-CI ему нужно захватить зависимости, и поскольку эти зависимости не используют семантическое управление версиями, Go захватывает последнюю версию, которая изменяется при каждой фиксации для выполнения. Если вы согласны с этим, как мне заблокировать зависимости с помощью модулей Go?


person Mark    schedule 15.02.2019    source источник
comment
go get обновляет зависимости. github.com/golang/go/wiki/   -  person Adrian    schedule 15.02.2019


Ответы (1)


В вики объясняется, как использовать пакет, в котором не включены модули go.

Вот соответствующий фрагмент:

Если в репозитории нет действительных тегов semver, то версия репозитория будет записана с «псевдо-версией», например v0.0.0-20171006230638-a6e239ea1c69 (которая включает метку времени и хэш фиксации и предназначена для полное упорядочение версий, записанных в go.mod, и для облегчения рассуждений о том, какие записанные версии «более поздние», чем другая записанная версия).

Вы также можете require определенные хэши коммитов:

При необходимости можно выбрать более конкретные версии зависимостей с помощью таких команд, как go get [email protected], go get foo @ master, go get foo @ e3702bed2 или путем непосредственного редактирования go.mod.

person Eli Bendersky    schedule 15.02.2019