пятница, 23 апреля 2021 г.

Публикация модуля в Golang

Если вы хотите сделать модуль доступным для других разработчиков, вы публикуете его, чтобы он стал видимым для инструментов Go. После публикации модуля разработчики, импортирующие его пакеты, смогут разрешить зависимость от модуля, выполнив такие команды, как go get.

Примечание. Не изменяйте версию модуля с тегами после его публикации. Для разработчиков, использующих модуль, инструменты Go проверяют подлинность загруженного модуля по первой загруженной копии. Если они отличаются, инструменты Go вернут ошибку безопасности. Вместо изменения кода для ранее опубликованной версии опубликуйте новую версию.

Шаги публикации

Чтобы опубликовать модуль, выполните следующие действия.

1. Откройте командную строку и перейдите в корневой каталог вашего модуля в локальном репозитории.

2. Запустите go mod tidy, которая удалит все зависимости, которые модуль мог накопить, которые больше не нужны.

$ go mod tidy

3. Запустите go test ./... последний раз, чтобы убедиться, что все работает.

Это запускает модульные (юнит) тесты, которые вы написали с помощью Go фреймворка testing.

$ go test ./...
ok      example.com/mymodule       0.015s

4. Отметьте проект новым номером версии с помощью команды git tag.

В качестве номера версии используйте номер, который сигнализирует пользователям о характере изменений в этом выпуске.

$ git commit -m "mymodule: changes for v0.1.0"
$ git tag v0.1.0

5. Отправьте новый тег в исходный репозиторий.

$ git push origin v0.1.0

6. Сделайте модуль доступным, выполнив команду go list, чтобы запросить Go обновить его индекс модулей с информацией о модуле, который вы публикуете.

Перед командой укажите инструкцию для установки переменной среды GOPROXY на прокси-сервер Go. Это гарантирует, что ваш запрос достигнет прокси.

$ GOPROXY=proxy.golang.org go list -m example.com/mymodule@v0.1.0

Разработчики, заинтересованные в вашем модуле, импортируют из него пакет и запускают команду go get так же, как и с любым другим модулем. Они могут запустить команду go get для последних версий или указать конкретную версию, как в следующем примере:

$ go get example.com/mymodule@v0.1.0


Читайте также:


Комментариев нет:

Отправить комментарий