Как выпустить обновленные пакеты для потребителей Go Mod / pkg. go .dev? - PullRequest
0 голосов
/ 14 февраля 2020

Как пометить их репо и заставить его отображаться для go mod и / или pkg. go .dev?

Я конвертировал один из своих пакетов в go mod. Однако, похоже, что инструмент go mod может видеть только очень старые версии моего пакета.

РЕДАКТИРОВАТЬ: я только что заметил, что мои старые версии имеют префикс "v", тогда как мои новые теги не имеют Префикс "v".

Это проблема root? Где задокументировано это жесткое требование?


Мой пакет под вопросом: 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/podcast@1.3.1
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/podcast@1.3.1
go: finding github.com/eduncan911/podcast 1.3.1
$ go mod download github.com/eduncan911/podcast@1.3.2
go: finding github.com/eduncan911/podcast 1.3.2
$ go mod download github.com/eduncan911/podcast@1.4.0
go: finding github.com/eduncan911/podcast 1.4.0
$ go mod download github.com/eduncan911/podcast@1.4.1
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

Doh.

$ go mod graph
github.com/eduncan911/podcast-test github.com/eduncan911/podcast@v1.3.0
github.com/eduncan911/podcast-test github.com/pkg/errors@v0.9.1

Может быть, мне нужно скачать явные версии, как часто задаваемые вопросы сказал module@version.

Я отредактировал go .mod и указал 1.3.1. Затем:

$ go mod download
go: github.com/eduncan911/podcast@v1.3.1: reading github.com/eduncan911/podcast/go.mod at revision v1.3.1: unknown revision v1.3.1

Моя последняя попытка была go вернуться к оператору часто задаваемых вопросов и запустить go get module@version, как было сказано:

$ go get github.com/eduncan911/podcast@1.4.1
go: github.com/eduncan911/podcast@v1.4.1: reading github.com/eduncan911/podcast/go.mod at revision v1.4.1: unknown revision v1.4.1

Обратите внимание, я продолжал менять версии в между некоторыми из этих заявлений выше. Но каждый раз это была версия, которой не было.

Я ждал несколько часов и повторял многие из этих утверждений для очистки любого кэширования.

Заранее спасибо!

1 Ответ

3 голосов
/ 14 февраля 2020

Это проблема root? Где задокументировано это жесткое требование?

Да, это необходимо. Из Go wiki (выделение добавлено):

Модули должны иметь семантическую версию в соответствии с semver, обычно в форме v (основная). (Дополнительная). ), например v0.1.0, v1.2.3 или v1.5.0-r c .1. Требуется ведущий v. Если используется Git, то выпущенный тег фиксирует свои версии. Доступны общедоступные c, а также репозитории и прокси-серверы закрытых модулей (см. Часто задаваемые вопросы ниже).

...