Как пометить свое репо и заставить его отображаться для go mod
и / или pkg.go.dev?
Я преобразовал один из своих пакетов в go mod
. Однако кажется, что сам инструмент go mod
может видеть только очень старые версии моего пакета.
РЕДАКТИРОВАТЬ: Я только что заметил, что мои старые версии имели префикс v, тогда как мои новые теги не имели префикса v.
Это основная проблема? Где задокументировано это жесткое требование?
Мой рассматриваемый пакет: https://github.com/eduncan911/podcast
И мои выпуски с тегами: https://github.com/eduncan911/podcast/releases
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0 <- this is the current version Go Modules sees available
Однако pkg.go.dev показывает:
v1 – github.com/eduncan911/podcast
v1.3.0 – Feb 19, 2017
v1.1.0 – Feb 6, 2017
v1.0.0 – Feb 5, 2017
В ответах на часто задаваемые вопросы на https://proxy.golang.org/ говорится:
Я зафиксировал новое изменение (или выпустил новую версию) в репозиторий, почему оно не отображается, когда я запускаю go get -u или go list -m --versions?
Чтобы улучшить кэширование и задержку обслуживания наших сервисов, новые версии могут появляться не сразу. Если вы хотите, чтобы новый код был немедленно доступен в зеркале, сначала убедитесь, что в базовом репозитории исходного кода есть тег с семантической версией для этой ревизии. Затем явно запросите эту версию с помощью go get module @ version. По истечении одной минуты кеширования, команда go увидит версию с тегами.
Итак, я попробовал это:
$ go get github.com/eduncan911/[email protected]
go: cannot use path@version syntax in GOPATH mode
Догадка означает, что мне нужно участвовать в проекте репо или Go; Итак, я создал один:
$ cat main.go
package main
import (
"fmt"
"github.com/eduncan911/podcast"
)
func main() {
fmt.Print(podcast.MP3)
}
Перешел в этот каталог, запустил go mod init
и снова запустил:
$ go mod download github.com/eduncan911/[email protected]
go: finding github.com/eduncan911/podcast 1.3.1
$ go mod download github.com/eduncan911/[email protected]
go: finding github.com/eduncan911/podcast 1.3.2
$ go mod download github.com/eduncan911/[email protected]
go: finding github.com/eduncan911/podcast 1.4.0
$ go mod download github.com/eduncan911/[email protected]
go: finding github.com/eduncan911/podcast 1.4.1
Хорошо, без ответа и вернуться к подсказке. Может, я что-то понимаю ...
$ go run main.go
go: finding github.com/eduncan911/podcast v1.3.0
go: downloading github.com/eduncan911/podcast v1.3.0
go: extracting github.com/eduncan911/podcast v1.3.0
Дох.
$ go mod graph
github.com/eduncan911/podcast-test github.com/eduncan911/[email protected]
github.com/eduncan911/podcast-test github.com/pkg/[email protected]
Возможно, мне нужно загрузить явные версии, например, в FAQ сказано module @ version.
Отредактировал go.mod и указал 1.3.1. Потом:
$ go mod download
go: github.com/eduncan911/[email protected]: reading github.com/eduncan911/podcast/go.mod at revision v1.3.1: unknown revision v1.3.1
Моей последней попыткой было вернуться к оператору FAQ и запустить go get module@version
, как сказано:
$ go get github.com/eduncan911/[email protected]
go: github.com/eduncan911/[email protected]: reading github.com/eduncan911/podcast/go.mod at revision v1.4.1: unknown revision v1.4.1
Обратите внимание: я продолжал менять версии между некоторыми из приведенных выше утверждений. Но каждый раз это была версия, которой не было.
Я ждал несколько часов и повторял многие из этих операторов, чтобы очистить кеширование.
Заранее спасибо!