Как обновить версию go в моде Go

Как правильно обновить версию go в моде go, в частности с 1.13 до 1.14?
Вы просто редактируете файл go.mod и меняете go 1.13 на go 1.14?

Я не спрашиваю, как редактировать файл go.mod, я спрашиваю, правильно ли просто изменить версию go в файле go.mod и все остальное (все зависимости ) все еще подходит для проекта?


person James Haskell    schedule 13.03.2020    source источник
comment
Отредактируйте файл вручную или используйте go mod edit -go=1.14.   -  person Cerise Limón    schedule 13.03.2020
comment
Спасибо! Значит, это просто изменение с 1.13 на 1.14? Это все, что нужно сделать? Не нужно запускать go mod tidy или какие-либо обновления?   -  person James Haskell    schedule 13.03.2020
comment
Если вы можете просто изменить версию go, когда захотите, без каких-либо последствий, для чего это нужно? Почему он находится в файле go.mod?   -  person James Haskell    schedule 13.03.2020
comment
Он определяет минимальную версию Go для проекта. Если сборка завершится неудачно, в выводе ошибок будет указано, что модуль указывает более новую версию, которая использовалась для его сборки.   -  person Adrian    schedule 13.03.2020
comment
Больше он ничего не делает, так что вопрос спорный. Это не имеет ничего общего с go mod tidy или какой-либо из зависимостей.   -  person Adrian    schedule 13.03.2020
comment
Спасибо, Адриан ... покопавшись дальше, я нашел это: github.com/golang/go/issues / 30791. Видимо, мне просто не о чем беспокоиться.   -  person James Haskell    schedule 13.03.2020


Ответы (3)


Команда go: редактировать go.mod из инструментов или скриптов:

Использование:

go mod edit [editing flags] [go.mod]

Edit предоставляет интерфейс командной строки для редактирования go.mod для использования в основном инструментами или скриптами. Читает только go.mod; он не ищет информацию об задействованных модулях. По умолчанию команда edit читает и записывает файл go.mod основного модуля, но после флагов редактирования можно указать другой целевой файл.

...

Флаг -go = version устанавливает ожидаемую языковую версию Go.

Так просто:

go mod edit -go=1.14

Но вы также можете редактировать go.mod вручную, это простой текстовый файл. go mod edit является первичным для скриптов, поэтому внесение изменений в go.mod можно легко автоматизировать.

person icza    schedule 13.03.2020

Другой ответ хорош, но в качестве другого метода скажем, что у вас есть это:

module north

go 1.13

вы можете просто удалить строку go и запустить go mod tidy. Результат:

module north

go 1.16

https://golang.org/cmd/go#hdr-Add_missing_and_remove_unused_modules

person Steven Penny    schedule 12.04.2021

go build и go test: эти команды проверяют go.mod и автоматически загружают недостающие зависимости. Так что нет необходимости использовать go mod tidy, когда версии изменяются в go.mod. В некоторых случаях (в основном CI) вы хотели бы использовать go mod download для загрузки модулей в кэш до того, как это понадобится для сборки (или теста).

person David Lebret    schedule 14.06.2021