Golang обновляет несовместимые модули

Итак, у меня есть несовместимая версия модуля chi, и я не могу обновить ее с помощью go get <package-name>, она обновляется только до последней несовместимой версии, хотя выпущено еще несколько версий. Мне нужны некоторые функции из библиотеки новой версии, которых нет в несовместимой. Несовместимая библиотека с файлом go.mod выглядит так: github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs=

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

Как я могу решить эту проблему? У кого-нибудь есть какие-либо идеи? Может быть, мне также нужно вручную очистить модули из моего репозитория, а затем попытаться запустить их снова?

Спасибо.


person Marius    schedule 06.04.2021    source источник


Ответы (1)


Когда версия, которую вы хотите, начинает быть совместимой с модулями Go, вы должны go get эту зависимость и импортировать пакеты в исходные файлы с правильным путем импорта с указанием версий, как объявлено в их go.mod файле.

Текущая go.mod Чи в главной ветке объявляет свой модуль как:

module github.com/go-chi/chi/v5

So:

go get github.com/go-chi/chi/v5

И в исходных файлах:

import "github.com/go-chi/chi/v5"

func main() {
    r := chi.NewRouter()
    // ...
}

person blackgreen    schedule 06.04.2021