Как обновить определённый пакет в проекте до последней версии?
У меня есть проект c зависимостями и один из них нужно обновить.
go.mod:
require (
github.com/c0caina/PP-DF-Plugin v0.0.0-20210329101903-fcd6d50e1db2
)
Я уже внёс в данный репозиторий некоторые изменения и хочу использовать их в своём проекте. Но как мне обновить версию пакета?
go get github.com/c0caina/PP-DF-Plugin- обновляет пакет через раз.go get -u github.com/c0caina/PP-DF-Plugin- обновит все пакеты в go.mod.
Ответы (1 шт):
работая с Git, удобно ввести версионирование репозиториев с помошью тэгов.
Работая с модулями, вы должны указать версию используемого пакета, вот тут и пригодиться готовый тэг. Например,
require (
github.com/c0caina/PP-DF-Plugin v0.0.1
можно добавить явные и не явные зависимости через команду
go get github.com/c0caina/[email protected] - по тэгу
go get github.com/c0caina/PP-DF-Plugin@master- по имени бранча
go get github.com/c0caina/PP-DF-Plugin@08c92af- по коммиту
go get github.com/c0caina/PP-DF-Plugin@latest- последняя версия по тэгам. Может как повысить версию, так и понизить.
теперь ваш файл go.mod может выглядеть как
require github.com/c0caina/PP-DF-Plugin v0.0.1+incompatible // indirect
Суффикс +incompatible добавляется ко всем пакетам, которые еще не включены в Go Modules или нарушают его правила управления версиями.
Поскольку мы еще не импортировали пакет нигде в нашем проекте, он был помечен как // indirect. Мы можем привести в порядок наши зависимости следующей командой go mod tidy
В зависимости от текущего состояния вашего репо, это приведет к удалению неиспользуемого модуля или удалению комментария // indirect.
Цель go mod tidy также состоит в том, чтобы добавить любые зависимости, необходимые для других комбинаций ОС, архитектуры и тегов сборки. Запускайте это перед каждым релизом.